私が次のことをした場合:
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 が異なることがわかります。