は誰かが次のようにコーディング想像:C#コンパイラの拡張提案
string s = "SomeString";
s.ToUpper();
我々は、すべての返された文字列が全く処理されないため、上記の例では、「TOUPPER()」メソッドの呼び出しが無意味であることを知っています。しかし、多くの人が間違いを犯して、問題を解決するために時間を費やしています。「自分の変数の文字が大文字にならないのはなぜですか?
戻り値オブジェクトが処理されない場合にコンパイラエラーを発生させる "ToUpper()"メソッドに適用できる属性があった場合、それは素晴らしいことではありませんか?以下のような何か:
[MustHandleReturnValueAttribute]
public string ToUpper()
{
…
}
このコードは、ユーザーを正しくコンパイルするためには、このような戻り値に処理しなければならない場合:
string s = "SomeString";
string uppers = s.ToUpper();
を、私は、これはそれがクリスタルクリアあなたがしなければならないことになるだろうと思います戻り値を処理しないと、その関数を呼び出すときにというポイントがありません。
文字列の例の場合、これは大きな問題ではないかもしれませんが、私はこれが便利な理由について他のより有効な理由を考えることができます。
あなたはどう思いますか?
ありがとうございました。
私は前にそれをしました。+1 –
@Rene:有効なポイント、+1 – Codex