C# 在分部类中声明的变量对第二个分部类声明不可见?

C# 在分部类中声明的变量对第二个分部类声明不可见?,c#,class,partial,C#,Class,Partial,所以我有两个不同的源文件: file1.cs: namespace namespace1 { public partial class Class1 { public partial class NestedClass { public int myInt{ get; set; } } } } namespace namespace1.Class1 { public partial class Nes

所以我有两个不同的源文件:

file1.cs:

namespace namespace1 {
    public partial class Class1 {
        public partial class NestedClass {

             public int myInt{ get; set; }

        }
    }    
}
namespace namespace1.Class1 {
    public partial class NestedClass {

         void doSomething() {
             Console.WriteLine(this.myInt); // class does not contain definition for myInt
         }
    } 
}
file2.cs:

namespace namespace1 {
    public partial class Class1 {
        public partial class NestedClass {

             public int myInt{ get; set; }

        }
    }    
}
namespace namespace1.Class1 {
    public partial class NestedClass {

         void doSomething() {
             Console.WriteLine(this.myInt); // class does not contain definition for myInt
         }
    } 
}
问题:

namespace namespace1 {
    public partial class Class1 {
        public partial class NestedClass {

             public int myInt{ get; set; }

        }
    }    
}
namespace namespace1.Class1 {
    public partial class NestedClass {

         void doSomething() {
             Console.WriteLine(this.myInt); // class does not contain definition for myInt
         }
    } 
}
我试图访问在第二个部分类的第一个部分类中声明的成员变量。我声明的变量不能从另一个文件中查看

我的解决方案尝试:

namespace namespace1 {
    public partial class Class1 {
        public partial class NestedClass {

             public int myInt{ get; set; }

        }
    }    
}
namespace namespace1.Class1 {
    public partial class NestedClass {

         void doSomething() {
             Console.WriteLine(this.myInt); // class does not contain definition for myInt
         }
    } 
}
我发现了这个,但它似乎并没有解决我的问题。我在每个部分类文件中声明了几个测试变量,而另一个文件看不到任何内容。我尝试了公共变量和私有变量,有设置器和没有设置器,因为这种情况下的问题涉及缺少设置器。我想可能我的类命名不正确,所以我三次检查了我的名称空间和类名,并且它们都声明为分部。最后,我也尝试重新启动VisualStudio,但没有成功


任何帮助都将不胜感激

问题在于,在第一个文件中,您有一个名称空间:

namespace namespace1 {
而第二种情况是:

namespace namespace1.Class1 {
file2.cs

namespace namespace1 {

    public partial class Class1 {

        public partial class NestedClass {

             public int myInt{ get; set; }

        }
    }
}
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
            }

        }

    }
}
使用系统;
名称空间1{
公共部分类1{
公共部分类嵌套类{
无效剂量测定法(){
Console.WriteLine(this.myInt);//类不包含myInt的定义
}
}
}
}

因此,您不必将外部类指定为命名空间,而是两次声明外部类。

命名空间不同。第一个部分类作为嵌套类存在,因此我在file2.cs中将其添加到命名空间中。检查此解决方案您应该在文件2上得到编译器错误,因为文件1中已经声明了namespace1.Class1。@Dan我认为这不是必需的。我所做的只是按照下面威廉的答案编辑它。我将保留问题和答案。我认为它将以目前的方式对未来的观众发挥最大的作用。现在代码工作了,
myInt
的定义不存在的评论是错误的;-)我以这种方式编辑了代码,VisualStudio仍然不喜欢它。我编辑了第二个文件的名称空间,并确保它与第一个文件中的名称空间在同一个类中,但我似乎仍然得到相同的错误。这需要一些Visual Studio的技巧吗?@dak1220:通常不需要。你能用代码更新你的问题吗?@WillemVanOnsem@dak1220:我已经编译过了,除了
使用系统之外语句,我没有得到任何错误。