6

私は正しく名前が付けられた変数が好きですが、場合によってはそれを行うのが非常に困難です。

したがって、オブジェクトが実装されている場合は、IDisposable次を使用できます。

using (var whatever = new Whatever()) { //... }

しかし、それはまれなケースなので、それを処理する別の方法を見つけました-匿名ブロック(どのように正しく呼び出されたかわかりません):

//...
{
    var whatever = new Whatever();
    //...
}
//...
if (condition)
{
    var whatever = new Whatever();
}

それは良いアプローチですか?コードの可読性が低下するという落とし穴や広く信じられていることはありますか?

4

3 に答える 3

4

基本的に、コンパイラがエラーを出さず、コードが読みやすく理解しやすいものであれば、何も問題はありません。

例えば:

foreach (var foo in foos)
{
   var task = new FooTask(foo);
   task.Run();
}
foreach (var bar in bars)
{
   var task = new BarTask(bar);
   task.Run();
}

これは実際には(私の意見では)よりもわずかに読みやすいです

foreach (var foo in foos)
{
   var task1 = new FooTask(foo);
   task1.Run();
}
foreach (var bar in bars)
{
   var task2 = new BarTask(bar);
   task2.Run();
}
于 2013-06-04T16:13:05.107 に答える
1

このアプローチには注意が必要です。読みやすさとデバッグのしやすさを妨げる可能性があります。過去に、1 つを見ていると思っていたときに、2 つの異なる変数を監視している 2 つのブレークポイントがあったという状況がありました。

メソッドが一貫性​​のない名前を使用しないようにするために C# が課す規則は複雑です。それらについて詳しく知りたい場合は、以下を参照してください。

http://blogs.msdn.com/b/ericlippert/archive/tags/simple+names/

于 2013-06-04T17:05:20.970 に答える