2016-05-13 5 views
13

デモ中に、開発者がコード内にURLを貼り付けたテストコードを見ました。そして、開発者がアプリケーションを構築するときには、すべてがうまくいったのですが、コンパイラがなぜURLをラインとして受け入れたのか、非常に興味深いところです。Url in not breaking build

public class Foo 
{ 
    // Why doesn't 'http://www.foo.org' break the build? 
    public void Bar() 
    { 
     http://www.foo.org 
     Console.WriteLine("Do stuff"); 
    } 
} 

なぜ上記のコードは作成されますか?コンパイラは行をコメントとして扱いますか?

+4

私はこれを正確に行い、私のコードを見直して、同僚と仲良くするつもりです:) –

+0

C#は 'goto'をサポートしています。ここではコンパイラは' http: 'をURLとしてではなくラベルとして読み込みます – Raghuveer

+0

あなたはここで何が起こっているかをはっきりと見ることができます。しかし、IDEでは明確に明示的ではありません。なぜなら、色が青色に変わり、リンクするようになっているからです。 – SeM

答えて

22

上記の正確なコードを試してみると、warning CS0164: This label has not been referencedとなります。

ここでの警告は、何が起こったかについての明確なヒントを提供します。

URLを貼り付けると、ラベルhttp:が作成されました。 gotoで使用する場合は、直後に1行のコメント//www.foo.orgを付けてください。

+0

すばらしい説明。ありがとうございました。 – smoksnes