C#中Static变量不熟悉导致的问题
某个项目的开发过程中遇到一个很奇葩的问题,在本地的认知中,同一个类,我们创建不同的对象后,每个对象的是独立的,那么对象下的属性也肯定是独立。例如,一个class student
{
string name;
},
当我们创建两个对象,
student Astudent =new student();
student Bstudent =new student();
然后分别给两个对象的name属性赋值。
Astudent .name="zhangsan";
Bstudent .name="lisi";
此时分别打印两个对象的属性,最终得到的结果是 :Astudent .name 的值为"zhangsan", Bstudent .name 的值为"lisi";
此种情况是符合我的基本认知的。
但是。。。。 某个项目中却出现了问题。在以上事例中Astudent .name 与Bstudent .name 都变成了lisi。此问题想了很长时间没有找到原因
最终一个偶然的机会,我发现原本string name的定义方式变为了 string statict name..大家发现了,多了一个关键字static. 我将关键字去掉问题就解决了。
但是其中的原理我还不是很清楚,目前只能理解为静态变量为公共属性,所有对象公用。
此问题待加深理解。。