看代码中结构体和类输出的B C值
class Program
{
static void Main(string[] args)
{
List<Te> myList = new List<Te>();//泛型list存放结构体
Te myTe = new Te();
myTe.A = 10;
myList.Add(myTe);//结构体是值类型,向myList中添加了当前值,参考int类型
myTe.B = 10;//对myTe.B变量赋值,但不能改变myList[0]的值
//myList[0].C = 10;这行代码报错,因为myList[0]是个值,不能改变
//如何改myList[0].C的值
Te te=new Te();
te.A = myList[0].A;
te.B = myList[0].B;
te.C = 5;
myList[0] = te;
Console.WriteLine(myList[0].A+" "+myList[0].B+" "+myList[0].C);//输出10 0 5
Console.WriteLine(myTe.A + " " + myTe.B + " " + myTe.C);//输出10 10 0
List<TestClass> myClass=new List<TestClass>();
TestClass ts=new TestClass();
ts.A = 10;
myClass.Add(ts);//类是引用类型,向myClass中添加了引用
ts.B = 10;//对ts.B变量赋值,myClass[0]存储的是引用,引用指向的存储值的地方和ts存储的引用指向的储存值的地方是同一个地方,myClass[0].B的值也改变
//myClass[0].C = 10; 不报错
Console.WriteLine(myClass[0].A + " " + myClass[0].B + " " + myClass[0].C);//输出10 10 0
Console.WriteLine(ts.A + " " +ts.B + " " + ts.C);//输出10 10 0
Console.ReadKey();
}
public struct Te
{
public int A { get; set; }
public int B { get; set; }
public int C { get; set; }
}
}
public class TestClass
{
public int A;
public int B;
public int C;
}