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

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();
        }
    }

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

partial class global::MyProject.PartialClass

partial class global::PartialClass

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

确保它们都在同一命名空间中,以便 C# 编译器将它们视为同一类型。