私はVS 2017 v15.5.0を使用しています。C#ネームスペース、フォルダ、コンパイラエラー
最小のコンソールプロジェクトCon_02
があります。このプロジェクトのメインクラスのネームスペースは、単にCon_02
(クラスは以下に示す)です。
このプロジェクトでは、Business
という名前の新しいフォルダを追加します。 Business
フォルダ内に、Employee
という名前のクラスを作成します。 Employee
クラスに対してVSによって生成されるデフォルトの名前空間はCon_02.Business
です。この名前空間を簡略化してBusiness
にします。
メインクラスに戻ると、Employee
がインスタンス化されます。ここに私の完全なメインクラスです:
namespace Con_02 {
class Program {
Business.Employee e1 = new Business.Employee();
private static void Main() { }
}
}
これまでのところ、とても良いです。すべてがコンパイルされます。
ここではBusiness
フォルダに別のクラスCompany
を作成します。 VSは名前空間Con_02.Business
を生成します。
今や、メインのCon_02.Program
クラスはコンパイルされなくなりました。
The type or namespace name 'Employee' does not exist in the namespace 'Con_02.Business' (are you missing an assembly reference?)
は私がなぜコンパイラを理解しようとしているように多くの問題を解決する方法を求めていないよ:具体的には、以前にうまくコンパイルされていたBusiness.Employee
オブジェクトの作成は、私のコンパイラエラーを与えますCon_02
を基準にした名前空間を想定しているようです。
そのため、名前空間の名前が重複しないようにする必要があります。 'global :: Business.Employee'を試してください – juharr
上記のように' using Business'または 'global ::'を追加してください。しかし、このような名前空間を使用しない方がよいでしょう。 – Evk