如果我执行以下操作:
var item2 = item1.MemberwiseClone();
item2.ID = Guid.NewGuid();
无论新Guid
item2
得到什么,它也会改变它item1
。Guid
由于 a是值类型,这不是不正确的吗?Guid
和都会发生这种情况Guid?
。
如果我执行以下操作:
var item2 = item1.MemberwiseClone();
item2.ID = Guid.NewGuid();
无论新Guid
item2
得到什么,它也会改变它item1
。Guid
由于 a是值类型,这不是不正确的吗?Guid
和都会发生这种情况Guid?
。
你的实现一定有问题。这是一个演示用法的示例:
class Program
{
class A
{
public Guid ID { get; set; }
public A Clone()
{
return (A)this.MemberwiseClone();
}
}
static void Main(string[] args)
{
var item1 = new A();
item1.ID = Guid.NewGuid();
var item2 = item1.Clone();
item2.ID = Guid.NewGuid();
Console.WriteLine(item1.ID);
Console.WriteLine(item2.ID);
Console.ReadKey();
}
}
如果您将代码作为控制台应用程序运行,您将看到 Guid 与文档所述不同。