【发布时间】:2026-01-26 03:05:02
【问题描述】:
public class Class1
{
public static string Name="foo";
public void ChangeName(string _name)
{
Name=_name;
}
}
in some other class..
Class1 _c=new Class1();
_c.ChangeName("bar");
并且名称被更改.. 更改静态成员的实例!
我认为静态成员仅适用于类。如果一个类想要它可以改变它的静态成员。 但是这里一个实例是可以间接改变它的。不应该一个实例不能改变它吗?当我们创建一个实例时,它在堆中占据自己的空间,而无法访问类的静态成员。那么这里到底发生了什么?
【问题讨论】:
-
您如何想象所有外部组件能够更改静态变量并消除类实例的可能性?
-
这是一个多线程的噩梦。 ;)
-
这不是像房屋(实例)一样决定蓝图(房屋类)以及其他实例的命运吗?如果蓝图想要它可以改变自己,那么根据这个新蓝图创建的房屋就会受到影响。不是一所房子决定其他房子的外观。这不是重点吗??
-
我认为它是这样的......蓝图赋予了房子改变蓝图本身的能力。