使用相同对象的列表c#在另一个类中分配对象的私有字段

Nun*_*gwe 0 c#

我有两个类,一个ExampleClass和一个ExampleClassManager,其中包含一个列表ExampleClass.

ExampleClass有一个私有_id字段,我想在ExampleClassManager课堂上设置.这可能吗?

public class ExampleClass
{
    //Fields
    private string _id; //Should be set in ExampleClassManager
}


public class ExampleClassManager
{
    //Fields
    List<ExampleClass> exampleClassList = new List<ExampleClass>();  
}
Run Code Online (Sandbox Code Playgroud)

use*_*414 5

有几种可能的选择.

  1. 公开(不推荐,因为它很糟糕)
  2. 创建一个公共属性以进行访问
  3. 创建一个公共方法来设置值(基本上与第二个选项相同)
  4. 用反射做

我更喜欢第二种选择,因为我认为这是清洁方式.如果您无法更改修改器,则必须使用第四个选项.

  • Microsoft不建议使用公共字段.你的选择2绝对是最干净的方法.也许所有的OP需求都是一个自动属性`public string iD {get; 集;}`. (2认同)