繁体   English   中英

C# - 部分 class 中的私有 static 方法不在文件之间共享?

[英]C# - private static method in partial class not shared between files?

我正在像这样创建static partial class

如果我将它们放在同一个文件没有问题,但是当我将一个 class 移动到同一个项目中的另一个文件时,此方法private_method_from_a()不再存在。

这是设计使然吗? 我在这里想念什么吗?

    //File A
    public static partial class PartialClass
    {
        private static void private_method_from_a()
        {
            //Do something
        }
    }

    //File B
    public static partial class PartialClass
    {
        public static void public_method_b()
        {
            private_method_from_a();
        }
    }

正如@MickyD 在评论中建议的那样,这两个文件很可能位于不同的namespace中。 这个问题的原因是你完全制作了 2 个不同的类。 很可能,其中一个在项目的命名空间中,而另一个在全局命名空间中 - 也就是说,您根本没有为它指定命名空间。 以下是编译器看到它们的方式(假设您的项目名为“MyProject”,并将该名称作为顶级命名空间):

partial class global::MyProject.PartialClass

partial class global::PartialClass

嗯,这是两种不同的类型,具有不同的完全限定名称,都是部分的。

确保它们都位于 C# 编译器的相同命名空间中,以将它们视为相同类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM