2017-09-26 2 views
0

클래스를 제어 할 수없는 객체를 제공하려고합니다. 즉, 기본 클래스가 객체를 변경하면 내가 만든 클래스도 변경됩니다.C# 생성자 내부 값을 지정하십시오.

예 :

지금은 문자열 "테스트"도 변경 문자열을 볼 수 객체 테스트를 변경하는 경우
class main 
{ 
    private string test; 

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

. 그게 가능하니?

+0

무엇을 기대합니까 ??????? – iamsankalp89

+1

테스트 문자열의 설정자에게 이벤트를 추가하고 테스트 객체에 등록하여 발생시 업데이트하십시오. – rmjoia

+1

좋은 디자인처럼 들리지 않습니다. 너 뭐하려고하는거야? – Timeless

답변

4

대신 문자열의 사용자가 특수하게 조작 된 클래스를 사용하는 경우 수행 할 수 있습니다 : 당신이 유형 SharedData 대신 문자열의 객체가있는 경우 다음

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

을, 그들은 가치를 공유합니다. C#에서는 문자열이 변경되지 않으므로 두 클래스 모두에서 동일한 문자열 참조를 사용하지 않아도됩니다.

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

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

P. 이것은 좋은 디자인인지 아닌지에 대한 다른 질문입니다. 당신이 제공 한 예제를 바탕으로 대답하기가 어렵습니다. 가능하다면 그러한 디자인을 피하고, 더 적은 상태를 필요로 할 때 매개 변수로 문자열을 전달하십시오. 그러나 언제나 그렇듯이 당신이하는 일이 유익한 경우가있을 수 있지만, 디자인을 변경하여 더 쉽게 사용할 수있는 방법을 고려할 수 있습니다.