所以我有两个不同的源文件:
file1.cs:
namespace namespace1 {
public partial class Class1 {
public partial class NestedClass {
public int myInt{ get; set; }
}
}
}
file2.cs:
namespace namespace1.Class1 {
public partial class NestedClass {
void doSomething() {
Console.WriteLine(this.myInt); // class does not contain definition for myInt
}
}
}
问题:
我正在尝试访问第二个第一个分部类中声明的成员变量。我声明的变量都不能从其他文件中查看。
我尝试解决方案:
我发现了这个post,但它似乎没有解决我的问题。我在每个部分类文件中声明了几个测试变量,而另一个文件中没有任何内容可见。我尝试了公共和私有变量,有或没有setter,因为在那种情况下的问题涉及缺少setter。我想也许我的类名称不正确,所以我检查了我的名称空间和类名,并且它们都被声明为部分名称。最后,我也试过重启Visual Studio,但没有用。
非常感谢任何帮助!
答案 0 :(得分:4)
问题是,在第一个文件中,您有一个命名空间:
namespace namespace1 {
而在第二个是:
namespace namespace1.Class1 {
由于名称空间不同,C#认为类也不同:它们发生具有相同的名称,但是这些在不同的命名空间中声明,C#认为它们是不同的。
如果您使用部分嵌套类,则应将其编写为:
<强> file1.cs
强>:
namespace namespace1 {
public partial class Class1 {
public partial class NestedClass {
public int myInt{ get; set; }
}
}
}
<强> file2.cs
强>:
using System;
namespace namespace1 {
public partial class Class1 {
public partial class NestedClass {
void doSomething() {
Console.WriteLine(this.myInt); // class does not contain definition for myInt
}
}
}
}
所以你做不将外部类指定为命名空间,但你声明外部类两次。