1. Modify the properties of an object within a method, and you can modify the object directly
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Data;usingSystem.Text;usingSystem.Threading.Tasks;namespacetest{classProgram {Static voidMain (string[] args) {Attendance a=NewAttendance ("AAA"); AA (a); Console.WriteLine (A.name); Console.ReadLine (); } Public Static voidAA (attendance a) {//A = new attendance ("dddd");A.name ="Eee"; } } Public classAttendance { PublicAttendance (stringName) { This. Name =Name; } Public stringName {Get;Set; } PublicDateTime Attendancedate {Get;Set; } }}
The result is the Eee
2. Assigning a similar instance to the object directly within the method will find that the object has not changed
classProgram {Static voidMain (string[] args) {Attendance a=NewAttendance ("AAA"); AA (a); Console.WriteLine (A.name); Console.ReadLine (); } Public Static voidAA (attendance a) {a=NewAttendance ("dddd"); //a.name = "eee"; } }
And the result is AAA.
classProgram {Static voidMain (string[] args) {Attendance a=NewAttendance ("AAA"); AA (a); Console.WriteLine (A.name); Console.ReadLine (); } Public Static voidAA (attendance a) {a=NewAttendance ("dddd"); A.name="Eee"; } }
or AAA?
classProgram {Static voidMain (string[] args) {Attendance a=NewAttendance ("AAA"); AA (a); Console.WriteLine (A.name); Console.ReadLine (); } Public Static voidAA (attendance a) {A.name="Eee"; A=NewAttendance ("dddd"); } }
The result is the Eee
3. To reassign an object within a method, you can use ref so that the object will be modified
classProgram {Static voidMain (string[] args) {Attendance a=NewAttendance ("AAA"); AA (refa); Console.WriteLine (A.name); Console.ReadLine (); } Public Static voidAA (refattendance a) {A.name="Eee"; A=NewAttendance ("dddd"); } }
The result is dddd.
Reference type Object