質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
DLL

DLL(Dynamic Link Library)とは、他のモジュールからも使用する事が出来る、関数とデータが格納されているモジュールのことです。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

945閲覧

C# 同じデータの読み込みを一度だけにしたい。

退会済みユーザー

退会済みユーザー

総合スコア0

DLL

DLL(Dynamic Link Library)とは、他のモジュールからも使用する事が出来る、関数とデータが格納されているモジュールのことです。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2018/02/05 13:17

編集2018/02/05 13:28

前提・実現したいこと

C#でプログラムを作っています。
usingでdllを呼び出しておりますが、
他のクラスでもusingで呼んでおります。
同じdllを呼び出さないように、一回読み込んだdllを判断させるプログラムはないでしょうか。

発生している問題・エラーメッセージ

ありません。

該当のソースコード

C#

1using System.Windows.Forms; 2namespace hoge 3{ 4 class testClass 5 { 6 public static void Main() 7 { 8 house.hello("hello,World"); 9 } 10 } 11} 12//------------------------------------------------ 13//別のcsファイル 14//------------------------------------------------ 15using System.Windows.Forms; 16namespace home 17{ 18 class house 19 { 20 public static void Hello(String message) 21 { 22 console.show(message); 23 } 24 } 25}

試したこと

ネットにて情報を探した。

補足情報(FW/ツールのバージョンなど)

マイクロソフトビジュアルスタジオエクスプローラー2015フォアウィンドウズデスクトップ

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2018/02/05 13:46

usingを二回呼ぶと、どんな不都合が起こると思っていますか?
退会済みユーザー

退会済みユーザー

2018/02/05 13:49

なるべく呼び出しを減らしてプログラムの軽量化?をしたいのです。
guest

回答1

0

ベストアンサー

こんにちは。

そのusingはdllロードではありませんよ。
単に、その名前空間のシンボル名を省略出来るようにするためのものです。
プロジェクト・メニューの参照の追加でdll(というかアセンブリ)を追加します。

投稿2018/02/05 13:23

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/02/05 13:30

始めまして、こんにちは。質問に答えていただいて、大変うれしいです。 私は、C#初心者なので詳しく言葉にできず、すみません。 同じusingで宣言したシンボル名を二度読ませないように判断させたいのです。 よろしくお願いいたします。
ozwk

2018/02/05 14:14 編集

usingは処理ではなく、 ただ単にコードを書くときに楽をする機能です 何かをロードしているわけでもないので あってもなくても実行時には何ら影響はないです
退会済みユーザー

退会済みユーザー

2018/02/05 14:00

同じ機能を二度ロードしないように設定したいのですがどうしたらよいのかわかりません。
Chironian

2018/02/05 14:25

ご提示のソース以外に何か特殊なことをしていない限り、そのままで同じ機能を二度ロードしていません。これ以上特になにもしなくてOKです。 逆に、何故「同じ機能を二度ロードしている」とお考えでしょうか? その根拠が分かると、もう少しアドバイス出来るかも知れません。
退会済みユーザー

退会済みユーザー

2018/02/05 14:30

プログラムを開始する時にMain using System.Windows.Forms;を呼び出し、Mainの中でHelloMethodを呼び出しています。そのHelloメソッドでもusing System.Windows.Forms;を呼び出していると思っております。 なので、このような事が無いように記述は一行だけながらも、フォームを出したいのです。
退会済みユーザー

退会済みユーザー

2018/02/05 14:31

using の中身で他のファイルを呼び出したり、自分自身を再度呼び出すコードが書かれていれば永遠にロードが終わらないじゃないですか。 呼び出すDLLの記述の内容にもよりますが、一回読んだら、二度目は読まないという処理をしたいのです。
hichon

2018/02/05 14:36

dllは最初に参照されたときにロードされ、2回目以降の参照では再利用されますので、ロード回数を気にする必要はありません。
退会済みユーザー

退会済みユーザー

2018/02/05 14:39

そうなんですね。知らなかったです。 再利用の件、ありがとうございます。しかし、記述で自分自身を呼び出すDLLを作ってしまう事が今後必要なので、一定の回数で止めておきたいので、そのソースが気になっております。
退会済みユーザー

退会済みユーザー

2018/02/05 14:39

訂正 そのソースというのは、二度以上は読み込まないという事です。
YAmaGNZ

2018/02/05 14:41

皆さんが書いているように、それは実行されません。 あなたが心配していることは発生しません。 例えば、 System.Windows.Forms.Form form1; と本来書かなければいけないのを Using System.Windows.Forms;と書くことで Form form1; と省略して書けるようになります。 また、このUsingはそれを書いたソースファイルのみで有効となり 別のファイルにもUsingを書かないと省略した書き方ができません。
Chironian

2018/02/05 15:00

> using の中身で他のファイルを呼び出したり、自分自身を再度呼び出すコードが書かれていれば永遠にロードが終わらないじゃないですか。 その使い方の using は何も呼び出しません。当然、自分自身もです。 従って、永遠にロードが終わらないということは発生しません。 もしも、発生したらそのソースを上げてみて下さい。現在ご提示されている状況とは異なっている筈です。つまり、現情報ではmoke0712さんの疑問を解決することは事実上不可能と思います。
退会済みユーザー

退会済みユーザー

2018/02/05 15:02

理解しました。皆様、本当にいろいろな助言をありがとうございます。二回目の呼び出しや自分自身を呼び出すのは不可能とわかりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問