PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C#]String anlegen


Gast
2006-11-06, 01:51:14
ich habe mal versucht in C# unter Visual Studio .NET 2003 (.NET 1.1) einen String folgendermaßen anzulegen:

System.String aString = new System.String("this is a string");

und erhalte die Fehlermeldung:

The best overloaded method match for 'string.String(char*)' has some invalid arguments
Argument '1': cannot convert from 'string' to 'char*'

Wie muß man das denn dann machen? Meine Konstruktion war der managed C++ Variante nachempfunden:

System::String ^aString = gcnew System::String("this is a string");

Gnafoo
2006-11-06, 02:14:56
Ganz einfach ohne expliziten Konstruktor. "Hallo Welt" ist bereits ein String-Objekt, d. h. im Gegensatz zu C++ ist der Konstruktor nicht nötig. Schließlich ist C# von Grund auf eine .NET-Sprache. Was du suchst ist also schlicht und einfach:

System.String aString = "this is a string";


Es gibt zwar einen entsprechenden Konstruktor (daher auch die Fehlermeldung), aber in normalen Code sollte der keine Verwendung finden, da er unsicheren Code voraussetzt (Pointer sind nur in unsicherem Code möglich, d. h. man müsste den Codeblock mit "unsafe { /*...*/ }" klammern oder beim Compiler einstellen, dass er unsicheren Code auch so akzeptiert. Im Normalfall wird man das aber nicht brauchen).

Gast
2006-11-06, 02:27:42
hm, ok, danke dir.