24

C# はこれをどのようにコンパイルしますか?

if (info == 8)
    info = 4;
otherStuff();

コードブロックに後続の行が含まれますか?

if (info == 8)
{
    info = 4;
    otherStuff();
}

それとも、次の行だけで済みますか?

if (info == 8)
{
    info = 4;
}
otherStuff();
4

6 に答える 6

60

はい、サポートしていますが、次のではなく次のステートメントを取ります。たとえば、次のようになります。

int a = 0;
int b = 0;
if (someCondition) a = 1; b = 1;
int c = 2;

次と同等です。

int a = 0;
int b = 0;
if (someCondition)
{
    a = 1;
}
b = 1;
int c = 2;

個人的には、私は常にステートメントの本文を中かっこで囲みますif。私が遭遇したほとんどのコーディング規則は、同じアプローチを採用しています。

于 2010-12-03T13:27:09.510 に答える
9
if (info == 8)
{
    info = 4;
}
otherStuff();
于 2010-12-03T13:17:16.327 に答える
4

C/C++ や Java のように動作します。カーリーがない場合は、次のステートメントのみが含まれます。

于 2010-12-03T13:17:14.590 に答える
1

In C#, if statements run commands based on brackets. If no brackets are given, it runs the next command if the statement is true and then runs the command after. if the condition is false, just continues on the next command

therefore

if( true )
    method1();
method2();

would be the same as

if( true )
{
    method1();
}
method2();
于 2010-12-03T14:04:21.607 に答える
1

はい、2番目の例のように、ifの後の最初のステートメントのみがifブロックに含まれます。

于 2010-12-03T13:17:47.680 に答える
0

次の行のみを使用するため、この例は 2 番目に考えられる結果の例にコンパイルされます。

于 2010-12-03T13:17:35.717 に答える