.NET 4の新しい属性

コードの量を減らすことで生産性を向上させる2つの新しい属性を紹介します。


ほぼ全員がプロジェクトに次のコードを持っていると確信しています。
public class Thingy
{
public Thingy()
: this ( "Default" , -1)
{
}

public Thingy( string name)
: this (name, -1)
{
}

public Thingy( string name, int whatever)
{
_name = name;
_whatever = whatever;
}

// Other code...

private string _name;
private int _whatever;
}


* This source code was highlighted with Source Code Highlighter .

これは大したことではありませんが、この場合の3人のデザイナーは見苦しいと思います。 欲しいのですが。 しかし、変数のデフォルト値を突然変更したい場合はどうでしょうか? ただし、コード内で使用する場所は2つあり、変更する必要があります-かなり不便なアクションです。

しかし、新しい属性を使用すると、コンストラクターを1つだけ持つことができます。
public class Thingy
{
public Thingy([ Optional , DefaultParameterValue ( "Default" )] string name,
[ Optional , DefaultParameterValue (-1)] int whatever)
{
}
}


* This source code was highlighted with Source Code Highlighter .

これで、コードの見栄えが良くなりました、同意しますか? デフォルト値は1か所にあり、3つではなく1つのコンストラクターがあります。 この方法は、従来の方法でも機能します。

もちろん、属性を使用する必要はありません。すべてを別の方法で、新しい方法で実装できます。
public class Thingy2
{
string n;
int i;

public Thingy2( string name = «Default», int whatever = -1)
{
n = name;
i = whatever;
}
}


* This source code was highlighted with Source Code Highlighter .


Source: https://habr.com/ru/post/J66331/


All Articles