2015-09-11 9 views
15

Se creo una normale console app con un normale punto di ingresso principale come segueC# Stringa e stringa. Perché Visual Studio le tratta in modo diverso?

using System; 

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

quindi selezionarlo in Visual Studio tutto è bene ..

enter image description here

Tuttavia, se scrivo la codice come segue ...

using System; 

namespace ConsoleApp 
{ 
    public class Program 
    { 
     public static void Main(String[] args) 
     { 
      // note the capital S in String 
     } 
    } 
} 

quindi tutto ciò che non va bene ....

enter image description here

Qualcuno sa perché è non far salire lo String [] ma felice con la stringa [] per favore?

modifica: estratto dai commenti, sembra un bug in Visual Studio 2012 e 2013. Presumibilmente è presente anche nelle precedenti edizioni ma sembra essere stato rettificato in VS2015. Non è un problema di per sé, e come notato il codice compila ancora ed esegue con string [] o String []. Sarei interessato a conoscere la causa del bug in VS però. Immagino che la finestra dell'editor delle proprietà non sia Using System;?

+3

Posso riprodurlo in VS 2013, ma non in VS 2015 – M4N

+3

Ignorare. Il tuo codice verrà compilato e funzionerà correttamente. Sembra un problema tecnico nell'editor delle proprietà del progetto. – niksofteng

+0

Puoi spiegare perché questo potrebbe mai causare problemi? Sembra che l'abbiano risolto in VS 2015 anche se –

risposta

4

Sei sicuro che il tuo esempio che utilizza String compila effettivamente?

minuscolo string è una parola chiave che equivale all'utilizzo di System.String; Dal momento che l'esempio non importa lo spazio dei nomi System, mi aspetto che causi errori di compilazione che potrebbero comportare la mancata identificazione delle proprietà del progetto nel metodo Main.

Aggiungere una direttiva using System; al file di codice o utilizzare esplicitamente System.String anziché String per rendere noto il tipo al compilatore.

+0

Sembra funzionare bene in entrambi i casi. Ma il comportamento mostrato nell'immagine (progetto di avvio riconosciuto solo con una stringa) sta effettivamente accadendo (almeno in VS 2012). – varocarbas

+0

l'esempio importa sistema. compila in entrambi i modi con string [] o String []. domanda modificata per mostrare questo – SkeetJon

+0

Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti da un autore, lascia un commento sotto il loro post. –

Problemi correlati