2016-09-06 7 views
0

エンティティパラメータをプライベートにする方法エンティティパラメータは、プライベートにする方法

さて、エンティティのパラメータはグローバルのようなものです。

protected void ButtonSubmit_Click(object sender, EventArgs e) 
{ 
    var poProductDefault = new ProductEntity(); 
    poProductDefault.CGROUP1 = "5"; 
    string Name = "123456"; 

    DoSomethingEntity1(Name, poProductDefault); 

    Label1.Text = Name; 
    Label1.Text = poProductDefault.CGROUP1; //Why "2000" ???? Is not "5" 
} 

private void DoSomethingEntity1(string Name, ProductEntity toProductDef) 
{ 
    Name = "ABC Changed"; 
    toProductDef.CGROUP1 = "2000"; 
} 
+1

なぜ「2000」への割り当てのためにCGROUP1のこのオブジェクトの使用価値から? 「DoSomethingEntity1」関数の値を変更したためです。 – Kinetic

+2

は、アドレスがメモリ内の同じオブジェクト上を向く渡された意味、C#でのオブジェクトの詳細を読んで、C#でオブジェクトが参照によって渡され、その行動を検討してみてください。 'ProductEntity'は参照型であり、値型ではありません。読む時間を取る – Sherlock

+0

どういう意味ですか?メソッドにはパラメータがあり、エンティティにはパラメータがありません。 –

答えて

0

C#オブジェクトは参照によって渡されるため、コードは実際にオブジェクトpoProductDefaultをメソッドDoSomethingEntity1()に渡しています。 はDoSomethingEntity1()メソッドでは、エンティティのパラメータは(私はあなたが財産を言うことを意味推測)プライベートにするには、 DoSomethingEntity1(内部ProductEntityの別のオブジェクトを作成する)とpoProductDefaultオブジェクトから値を割り当てると、このに別のオブジェクトをCGROUP1 = 2000リターンを割り当てることができますDoSomethingEntity1からProductEntity()およびます。Label1.Text

+0

私のpoProductDefaultは別のことをやり続けます。私は元の価値を残しておきたい。出来ますか?いくつかのサンプルコードを書くことができますか?ありがとう – Martin

関連する問題