显然,您可以this
从结构中的任何位置(但不能在类中)更改值:
struct Point
{
public Point(int x, int y)
{
this = new Point();
X = x; Y = y;
}
int X; int Y;
}
我以前从未见过,也从未需要它。为什么有人想要这样做?Eric Lippert 提醒我们,一个功能必须有正当理由才能实施。什么伟大的用例可以证明这一点?有没有什么场景是无价的?我找不到任何关于它的文档1。
此外,对于调用构造函数,已经有一种更广为人知的替代语法,所以这个特性有时是多余的:
public Point(int x, int y)
: this()
{
X = x; Y = y;
}
我通过 C# 4th edition在 Jeffrey Richter 的 CLR 中的一个示例中找到了此功能。
1) 显然它在C# 规范中。