【问题标题】:C# - private static method in partial class not shared between files?C# - 部分类中的私有静态方法不在文件之间共享?
【发布时间】:2020-11-29 17:10:48
【问题描述】:

我正在像这样创建static partial 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();
        }
    }

【问题讨论】:

  • 您是否使用不同的namespaces?也许向我们展示文件的顶部?
  • 是的,我不知道它在同一个命名空间中。非常感谢。

标签: c# class partial-classes


【解决方案1】:

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

partial class global::MyProject.PartialClass

partial class global::PartialClass

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

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

【讨论】:

    猜你喜欢
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 2011-02-08
    • 2015-01-31
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多