【发布时间】:2013-02-03 19:21:59
【问题描述】:
我明白浅拷贝的定义
浅拷贝是创建一个新对象,然后将当前对象的非静态字段复制到新对象中。如果一个字段是一个值类型 --> 对该字段进行逐位复制;对于引用类型 --> 引用被复制但被引用的对象不是;因此原始对象和它的克隆引用同一个对象。
但是为什么不复制静态字段呢?
【问题讨论】:
标签: c#
我明白浅拷贝的定义
浅拷贝是创建一个新对象,然后将当前对象的非静态字段复制到新对象中。如果一个字段是一个值类型 --> 对该字段进行逐位复制;对于引用类型 --> 引用被复制但被引用的对象不是;因此原始对象和它的克隆引用同一个对象。
但是为什么不复制静态字段呢?
【问题讨论】:
标签: c#
因为静态字段不是对象的一部分。您可以使用ClassName.StaticValue 访问它们。实际上,您无法使用ClassInstanceName.StaticValue 访问它们。
【讨论】:
静态字段由特定类的所有实例共享。
【讨论】:
因为静态成员是class 级别的成员而不是实例级别的成员,这意味着静态成员对于给定类型的所有实例都是通用的。
【讨论】: