好奇,当你从C#中的结构中返回关键字this时会发生什么?
例如:
public struct MyStruct
{
// ... some constructors and properties 1-3
public MyStruct Copy()
{
return MyStruct(Property1, Property2, Property3);
}
// vs
public MyStruct This()
{
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 16
它返回值的独立副本.换一种说法:
MyStruct x = new MyStruct();
y = x;
Run Code Online (Sandbox Code Playgroud)
就好像
MyStruct x = new MyStruct();
y = x.This();
Run Code Online (Sandbox Code Playgroud)
这真的很无趣.
请记住,"值"基本上是"构成与结构中的字段有关的所有内容".如果这些字段是引用,则将复制引用值(而不是它们引用的对象).如果它们是其他值类型,则只会复制这些值.
奇怪的事实:在结构中,你可以重新分配this:
this = new MyStruct();
Run Code Online (Sandbox Code Playgroud)
请不要那样做:)
| 归档时间: |
|
| 查看次数: |
913 次 |
| 最近记录: |