2017-09-26 48 views
0

我想给一个类没有控制权的对象。这意味着如果主类改变了对象,那么我创建的类也会发生变化。C#给一个构造函数的内部值

例子:

class main 
{ 
    private string test; 

    public main() 
    { 
     var Test = new Test(test); 
    } 
} 

如果我现在改变字符串“测试”对象测试也应该看到变化的字符串。那可能吗?

+0

你期望什么??????? – iamsankalp89

+1

将事件添加到测试字符串的setter,并在测试对象中订阅以在引发时进行更新。 – rmjoia

+1

这听起来不像一个好设计。你想做什么 – Timeless

回答

4

这是可能的,如果你不是字符串中使用特制类的事:

public class SharedData 
{ 
    public string Test {get;set;} 
} 

然后,如果你有SharedData类型,而不是字符串的对象,他们将分享价值。字符串在C#中是不可变的,所以你不会在两个类中都有相同的字符串引用。

class main 
{ 
    private SharedData test = new ShareData(); 

    public main() 
    { 
     var Test = new Test(test); 
    } 
} 

P.S.这是一个不同的问题,这是否是一个好的设计。根据你提供的例子很难回答。如果可能的话,我会避免这样的设计,而将字符串作为参数传递给你需要的状态。但一如既往,这取决于您的情况,并且可能会出现您所做的事有益的情况,但您可以考虑更改设计以使其更容易。

相关问题