10

「外部ライブラリを使用しない」と指定された課題に取り組んでいます。そこで私は ac# アプリケーションを作成し、最初にしたことは、デフォルトですべての dll の参照を削除することでした... "System.dll" を含みます。

ただし、これをコードに追加することはできます。

using System;
using System.IO;

これを行うために、プロジェクトで参照として System.dll を使用する必要がないのはなぜなのか、私はただ興味がありました。ありがとう!

4

5 に答える 5

10

mscorlib.dllこれらの両方の名前空間にアイテムが含まれます。

この参照を削除するには、プロジェクトを右クリックして [プロパティ] > [ビルド] > [詳細...] を選択し、[mscorlib.dll を参照しない] をオンにする必要があります。

于 2012-07-19T11:56:50.303 に答える
2

異なるアセンブリが同じ名前空間に貢献できます。

System.dll を参照しない場合でも、System名前空間に多くの型を提供する mscorlib.dll を (暗黙的に) 参照しています。

于 2012-07-19T11:58:11.513 に答える
0

考慮すべきもう 1 つの点は、コマンド ラインから直接コンパイルする場合、デフォルトのライブラリ参照を含むデフォルトのスイッチ セットが、デフォルトの応答ファイル (csc.rsp) を介してコンパイラによって解析されることです。コンパイラ。コンパイル時に名前空間を明示的に参照せずに基本クラス ライブラリから名前空間をインポートできるのは、名前空間を含むアセンブリが既定でプログラムに含まれているためです。コマンド ラインでこの動作を変更するには、/nostdlib スイッチを使用して mscorlib.dll を含めないようにするか、/noconfig を使用して既定の応答ファイル全体を完全に無視することができます。また、あなたが言及した名前空間はmscorlib.dllに含まれているため、system.dllの意味がよくわかりません。また、「

于 2013-04-21T17:00:03.573 に答える
0

これらはデフォルトのライブラリです。あなたの質問は「サードパーティのdllを使用しないでください」だと思います

于 2012-07-19T11:59:11.457 に答える
0

これらの参照はおそらくあなたWeb.configのファイルまたはMachine.configファイルで定義されているため、デフォルトで含まれています。

于 2012-07-19T11:56:16.093 に答える