わかりましたので、私はC#と.NET上で本を読んでいると、DateTime構造体と、次のコードについて学びながら:System.Collectionsは「システム名前空間の名前空間」ですか?
DateTime dt = new DateTime(2015, 10, 17);
私は「なぜ私はそれを参照する必要はありませんでした自分自身を尋ねました上に書いてusing System.DateTime
"と書く?
DateTimeは構造体であり、型を参照するために "using"キーワードが使用されていることに気がつきました(typeは、set {class、interface、structure、enumeration、delegate}のメンバーを参照する一般的な用語です) )、特定の名前空間で定義されています(この場合、DateTimeはSystem Namespaceの型構造です)。
しかし、私は(私はC#コンソールアプリケーションを作成したとき、彼らは自動的にそこに置かれた)私のファイルの先頭に、以下のusingディレクティブが検出されたことに気づいた:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
私はなぜusingディレクティブを思っていましたusing System
に従う必要がありました。それらはすべてSystem名前空間の下にないので、すでに参照されているはずです。
set {class、interface、structure、enumeration、delegate}のタイプではなく、の名前空間であるため、その下に宣言されているものがすべてあるためです。しかし、それを "名前空間システムの名前空間(または名前空間システムに属している)"と呼ぶのは間違いでしょうか?もしそうなら、暗黙的にusing System
に含まれているのではなく、名前空間の名前空間を明示的に参照しなければならない理由は何ですか?
私の質問がはっきりしていることを希望しますが、そうでない場合は私に教えてください。
誤解を明確にするために、あなたの例で使用するものはすべての名前空間です。この構文を使ってクラス(または構造体)を持つことはないので、 'using System.DateTime'のようなことは決してありません。 https://msdn.microsoft.com/en-us/library/sf0df423.aspxに記載されている 'using'を使う他の方法もあります。名前解決の観点からは、構造体やクラス(とインタフェースや他の何かを考えることができます)はすべて同じように動作します。 – Chris