0

私は同じことをする次の3つの例を持っています

//case1 do it if the condition is valid
private void SetMultiplePropertyValues()
{
    if (Keyboard.GetKeyStates(Key.CapsLock) == KeyStates.Toggled)
    {
        //do somthing
    }
}

//case 2 return if the condition is not valid
private void SetMultiplePropertyValues()
{
    if (Keyboard.GetKeyStates(Key.CapsLock) != KeyStates.Toggled) return;
        //do somthing
}

//case 3 checking the condition in the calling scope
if (Keyboard.GetKeyStates(Key.CapsLock)== KeyStates.Toggled)
    SetMultiplePropertyValues())

private void SetMultiplePropertyValues()
{
    //do somthing
}

どちらと一緒に行きますか、なぜですか

4

2 に答える 2

0

まず第一に、コード コメントでわかるように、それらは同じことをしません。つまり、機能性ではなくコード アーキテクチャについて話していると思います。

第二に、SO は意見を述べることではありませんが、これらの違いについて具体的なことを言おうと思います。

1-一般的なアプローチの場合

if (true == false)
{
    return true;
}

対。

2 -接近する場合は単線

if (true == false)  return true;

ほとんどのコード規則では、オプション 1 を使用するように言われています。これは、コードが読みやすく理解しやすく、間違いを避けるためです。慣習はルールではないことも理解する必要があります。したがって、それらは単なる慣例ですが、実際にはほとんどの場合、オプション 2 を回避しようとします。

もう1つ、いくつかのコード慣習では、この例のように非常に単純なものが必要な場合は、オプション2を使用しても問題ないと言っています。これは非常に読みやすく理解しやすいものです。しかし、これは「ルール」からの例外のように考えてください。

于 2013-11-12T19:21:12.700 に答える