どうやら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#第4版を介したJeffreyRichterのCLRの例で見つかりました。
1)どうやらそれはC#仕様にあります。