2015-09-11 5 views
15

C#文字列と文字列。 Visual Studioで違った扱いをするのはなぜですか?

using System; 

namespace ConsoleApp 
{ 
    public class Program 
    { 
     public static void Main(string[] args) 
     { 
      // do stuff 
     } 
    } 
} 

を次のように私は、通常のメインエントリポイントで、通常のコンソールアプリケーションを作成する場合は、すべてがうまくているVisual Studioでそれを選択...

enter image description here

しかし、私が書く場合...

次にすべてが正常ではありません....

enter image description here

誰もが[] []が、文字列と幸せなぜそれが文字列を拾っていないしてください知っていますか?

edit:コメントから抽出すると、Visual Studio 2012および2013のバグだと思われます。おそらく以前のエディションにも表示されていますが、VS2015で整流されているようです。それ自体は問題ではなく、コードはまだをコンパイルし、をstring []またはString []で実行しますが、私はVSのバグの原因を知ることに興味があります。私は、プロパティエディタのウィンドウがUsing System;ではないと思いますか?

+3

私はこれをVS 2013で再現できますが、VS 2015で再現できません – M4N

+3

ただ無視します。あなたのコードはコンパイルされ、うまく動作します。プロジェクトプロパティエディタの不具合のようです。 – niksofteng

+0

これがなぜ問題を引き起こすのかを詳しく説明できますか?それは彼らがVS 2015でそれを修正したようだが –

答えて

4

Stringを使用しているあなたの例が実際にコンパイルされていますか?

小文字のstringSystem.Stringと同じキーワードです。あなたの例ではSystem名前空間をインポートしないので、プロジェクトのプロパティがメインメソッドを識別できないというコンパイルエラーが発生することが予想されます。

コードファイルにusing System;ディレクティブを追加するか、StringではなくSystem.Stringを明示的に使用して、型をコンパイラに知らせる必要があります。

+0

いずれにしてもうまくいくようです。しかし、実際に起こっているのは、(少なくともVS2002では)画像(ビヘイビアで認識されたスタートアッププロジェクト)で示された動作です。 – varocarbas

+0

この例では、システムがインポートされます。それはstring []またはString []でいずれかの方法でコンパイルされます。これを示す編集された質問 – SkeetJon

+0

これは質問への答えを提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 –

関連する問題