C#给出一个构造函数的内部值
我试图给一个类一个无法控制它的对象。这意味着如果主类更改了对象,我创建的类也会更改 例如:C#给出一个构造函数的内部值,c#,object,constructor,C#,Object,Constructor,我试图给一个类一个无法控制它的对象。这意味着如果主类更改了对象,我创建的类也会更改 例如: class main { private string test; public main() { var Test = new Test(test); } } 如果我现在更改字符串“test”,那么对象测试也应该看到更改字符串。这可能吗?如果您使用特制的类而不是字符串,则可以执行以下操作: public class SharedData { public s
class main
{
private string test;
public main()
{
var Test = new Test(test);
}
}
如果我现在更改字符串“test”,那么对象测试也应该看到更改字符串。这可能吗?如果您使用特制的类而不是字符串,则可以执行以下操作:
public class SharedData
{
public string Test {get;set;}
}
然后,如果您有一个类型为SharedData
而不是string的对象,它们将共享该值。字符串在C#中是不可变的,因此两个类中不会有相同的字符串引用
class main
{
private SharedData test = new ShareData();
public main()
{
var Test = new Test(test);
}
}
另外,这是不是一个好的设计是另一个问题。根据你提供的例子很难回答。如果可能的话,我会避免这样的设计,而是将字符串作为参数传递给需要它具有较少状态的地方。但是,它总是取决于你所做的事情是有益的,但是你可以考虑改变设计以使它更容易。 如果你不是使用一个特别精心制作的类:,就有可能做。
public class SharedData
{
public string Test {get;set;}
}
然后,如果您有一个类型为SharedData
而不是string的对象,它们将共享该值。字符串在C#中是不可变的,因此两个类中不会有相同的字符串引用
class main
{
private SharedData test = new ShareData();
public main()
{
var Test = new Test(test);
}
}
另外,这是不是一个好的设计是另一个问题。根据你提供的例子很难回答。如果可能的话,我会避免这样的设计,而是将字符串作为参数传递给需要它具有较少状态的地方。但是,它总是取决于你可以做哪些事情是有益的,但是你可以考虑改变设计以使它更容易。你期望的是什么?将事件添加到测试字符串的设置器中,并在测试时订阅测试对象以更新。这听起来不是一个好的设计。您试图做什么?您期望什么?向测试字符串的setter添加一个事件,并订阅测试对象,以便在引发时更新。这听起来不是一个好的设计。你想干什么