私人成员在部分班级中是否可见?

hau*_*ous 2 .net c#

我有这个代码构造,每个命名空间部分都在同一个项目中的一个单独的文件中(和相同的项目文件夹):

namespace mynamespace
{
    public partial class Worker
    {
        private ILog log = /*instantiate a logger*/;
    }
}
Run Code Online (Sandbox Code Playgroud)

并在第二个文件中

namespace mynamespace
{
    public partial class Worker
    {
        private void DoStuff()
        {
            log.Info("a message");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是它不会编译,因为在第二个文件中VS2008编译器抱怨"当前上下文中不存在名称'log'"

必须将Log声明为public才能编译,这是一个惊喜.我错过了什么吗?

Tho*_*mar 12

部分类只是分布在各种文件中的普通类.编译器获取所有代码,将其合并为一个然后编译它.部分类的范围规则没有区别.适用于任何其他类的规则(是的,私有成员可以在一个类的所有成员中访问,无论是否部分).

想象一下这个类是在同一个.cs文件中.