从部分类访问类字段

Pep*_*ier 9 c# partial-classes

我目前正处于一个必须使用部分类的场景中.在这个部分类中,我有一些方法需要解决另一个类中的字段.

例如

编辑:对不起:第一堂课已经宣布了partial!

public partial class myClass
{        
    private string _myString;

    public string myString
    {
        get { return _myString; }
        set { _myString = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

public partial class myClass
{
    public void doSomething()
    {
        myString = "newString";
    }
}
Run Code Online (Sandbox Code Playgroud)

编译器说myString部分类中不存在!

我怎样才能克服这个问题?

Sve*_*ven 32

一个常见的问题是在不同的命名空间中使用部分类.命名空间是类名的一部分,namespace1.myClassnamespace.a.myClass作为两个完全独立的类处理.

根据MSDN,部分类的每个部分应该:

  • partial修饰语
  • 具有相同的类名
  • 在同一名称空间中
  • 在同一个程序集或DLL中
  • 具有相同的可见性(如公共,私人等)


Kha*_*los 9

您发布的代码需要修复一些内容:

在C#中使用部分类时,必须将类的所有部分声明为部分类

你有

 public class myClass {}
 public partial class myClass {}
Run Code Online (Sandbox Code Playgroud)

哪个需要成为

public partial class myClass {}
public partial class myClass {}
Run Code Online (Sandbox Code Playgroud)

其次,你正试图设定

myString="newString";
Run Code Online (Sandbox Code Playgroud)

但是myString没有二传手的公共财产.

因此,要么在声明时添加setter myString

public string myString
{
    get{ return _myString; }
    set { _myString = value; }
}
Run Code Online (Sandbox Code Playgroud)

或者只是使用

_myString="newString";
Run Code Online (Sandbox Code Playgroud)

在你的第二个partical类文件中.