我有两个类,一个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>();
}
答案 0 :(得分:5)
有几种可能的选择。
我更喜欢第二种选择,因为我认为这是一种清洁方式。如果您没有机会更改修改器,则必须使用第四个选项。
答案 1 :(得分:0)
答案 2 :(得分:0)
示例1 :(如Kevin Cook所说)ExampleClass在构造函数中使用id
,然后id
无法更改:
public class ExampleClass
{
public class ExampleClass(string id)
{
_id = id;
}
//Fields
private readonly string _id; //note the use of **readonly**
public string Id { get {return _id; } } //So ExampleClassManager can see the id
}
用法:
var actualObject = new ExampleClass("abc123");
string myObjectId = actualObject.Id // This should be what was passed in... "abc123"
我可以举一个代码示例来说明如何通过属性更改id
,但我还没看到你想要一个对象标识符一旦创建就改变。您可能很容易想要改变其他领域,但这是一个不同的问题。