.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 .







All Articles