2009-06-23 5 views
4

Ich habe eine komprimierte Quelldatei heruntergeladen, die ein C# -Projekt mit mehreren Einstiegspunkten/Hauptmethoden enthält. Da ich um basteln wollte, habe ich einen anderen, wie dies in einer neuen Art/KlasseWarum wird nur eine parameterlose Main-Methode als "gültiges Startobjekt" für ein C# -Projekt betrachtet?

class MyExperiments 
    { 
     static void Main(String[] args) 
     { 
     // do something 
     } 
    } 

dann wechselte ich Eigenschaften zu projizieren. Wechseln Sie einfach das Startobjekt zu MyExperiments eh? Zu meiner Überraschung hatte das Drop-Down es nicht. Ich habe es neu aufgebaut, die Methode öffentlich gemacht, eine ganze Menge Zeug probiert ... aber ohne Erfolg. Schließlich habe ich die .csproj manuell im Editor bearbeitet und dann hat es funktioniert. Mehr Bastelei um, entfernte ich die Parameter es

static void Main() 

und jetzt VS Projekteigenschaften ‚sehen‘ könnte, um das Startobjekt. Jetzt könnte ich es also über das Dropdown-Menü auswählen. Ich habe dann den String [] wieder hinzugefügt und alles hat noch funktioniert.

Scheint ein bisschen seltsam für mich (weil die häufigste Form ist eine Main-Methode mit Parametern für Befehlszeilenargumente aus der C/C++ Zeiten). MSDN besagt, dass das Dropdown-Fenster gültige Startobjekte enthält, wenn sie in Ihrem Projekt vorhanden sind.

+0

„Weiß jemand, wo diese kann abgelegt werden ": http://connect.microsoft.com/visualstudio –

+0

(geantwortet Kommentar zu CLR-Typen; validiert auch den connect-Fehler) –

Antwort

6

Gut, dass Sie es kopiert haben, es ist die Hauptstadt "S" in Main(String[] args). Anscheinend verwendet VS eine Textübereinstimmung, und es ist Groß-und Kleinschreibung. So wie es wahrscheinlich sein sollte.

+0

rate das wird diejenigen zeigen "Kennen Sie Ihre CLR-Typen" Leute wie Jeff Richter n Jon S. :) Weiß jemand, wo dies abgelegt werden kann .. sehr ärgerlich, wenn Sie versuchen, am Ende Ihres Tagesjobs motiviert zu bleiben und etwas zu lernen. – Gishu

+0

Es wurde auf SO viele Male diskutiert und ich denke, der Konsens besteht darin, String und nicht [System.] String, wie Int anstelle von Int32 –

+2

"Wie es wahrscheinlich sein sollte." - nicht davon überzeugt; Es macht keinen Unterschied für den Compiler, also warum sollte der IDE interessieren? –

5

lol - es sieht aus wie ein Fehler in der IDE:

static void Main(String[] args) {} 

nicht zeigen, aber

static void Main(string[] args) {} 

tut!

+0

WTH? Fuhr mich für ca. 10-20 Minuten atleast verrückt. – Gishu

+0

Wahrscheinlich kein Bug, sondern nur die Verwendung des C# -Schlüsselworts für den Stringtyp, so wie Sie int als Typ für eine Enum aber nicht Int32 verwenden können. Sie können Ihre eigene String-Klasse deklarieren, aber Sie können das String-Schlüsselwort nicht manipulieren. – Guffa

+0

Danke. Gespeichert https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=469203 – Gishu

0

Update: Antwort auf die Connect Feedback/Fehler,

Danke für das Feedback! Es sieht das Problem hier ist, dass die "String" Parameter in der Main-Methode muss eine vollständig Kleinbuchstaben "string" (und es scheint auf Ihre stackoverflow Post hingewiesen worden sein). Ich sehe einen hier Vorschlag, das Projekt Immobilienseite zu aktualisieren, etwas klüger sein über das Startobjekt, Aufnehmen aber wenn man bedenkt, dass es eine vernünftige Abhilfe, dann werden wir unsere Ressourcen investieren bei der Stabilisierung und Verbesserung der Leistung von VS2010. Ich werde gehen voraus und beheben Sie den Fehler als "Wont Fix", aber bitte fühlen Sie sich frei reaktivieren Sie den Fehler, wenn Sie weitere Fragen/Kommentare haben.

Danke, DJ Park C# IDE, Programm -Manager

So etwas zu sein scheint, dass Sie jetzt auf der Rückseite Ihres Geistes zu halten haben würde - Gishu

Verwandte Themen