2016-09-06 2 views
0

Wie wird ein Entity-Parameter privat gemacht?Wie wird ein Entity-Parameter privat gemacht?

Nun sind Entity-Parameter wie Globals.

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

Warum "2000"? Weil Sie den Wert in der Funktion "DoSomethingEntity1" geändert haben. – Kinetic

+2

Lesen Sie mehr über Objekte in C#, und versuchen Sie, sein Verhalten zu untersuchen, Objekte in C# werden als Referenz übergeben, was bedeutet, dass eine Adresse übergeben wurde, die auf dasselbe Objekt im Speicher verweist. 'ProductEntity' ist ein Referenztyp, kein Werttyp. Nimm dir Zeit zum lesen – Sherlock

+0

Was meinst du? Methoden haben Parameter, Entitäten nicht. –

Antwort

0

C# Objekte als Referenz übergeben werden, so dass Ihr Code ist vorbei tatsächlich Objekt poProductDefault zu Verfahren DoSomethingEntity1(). Um den Entity-Parameter in der DoSomethingEntity1() -Methode als privat zu definieren, können Sie innerhalb von DoSomethingEntity1() ein weiteres Objekt von ProductEntity erstellen und Werte aus dem Objekt poProductDefault zuweisen und CGROUP1 = 2000 zuweisen. Geben Sie ein weiteres Objekt von ProductEntity von DoSomethingEntity1() und von diesem Objekt verwenden Sie den Wert von CGROUP1 für die Zuordnung zu Label1.Text

+0

Mein poProductDefault wird weiterhin verschiedene Dinge tun. Ich möchte seinen ursprünglichen Wert behalten. Ist es möglich? Könnten Sie einen Beispielcode schreiben? Vielen Dank – Martin

Verwandte Themen