コードの量を減らすことで生産性を向上させる2つの新しい属性を紹介します。
- [オプション]
- [DefaultParameterValue]
ほぼ全員がプロジェクトに次のコードを持っていると確信しています。
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 .