String mit @

Speedkill

Erfahrenes Mitglied
Hallo Zusammen.

Ich habe ein komisches Problem und komme einfach nicht dahinter.

Ich übergebe Strings aus einer Combobox in einer Form an den Konstruktor einer anderen Klasse.
Bei
Code:
Consosle.Writeline(this.combobox.selecteditem.toString());
zeigt er mir korrekterweise den String an (C:\) bei einem
Code:
 Console.WriteLine(This.combobox.selectedItem.getType().ToString()
zeigt er mir ebenfalls korrekterweise ein System.String an.

Übergebe ich den String jedoch an die Funktion so ziegt mir der Debugger nicht den String an sondern ein @"C:\" (wieso hat sich das Ding den umgewandelt ?

hier mal der Code zum auslesen.

Code:
privatevoid btnOK_Click(object sender, System.EventArgs e) {
 
System.Console.WriteLine(this.lstSysDrive.SelectedItem.ToString());
 
System.Console.WriteLine(this.lstDrive.Text);
 
System.Console.WriteLine(this.txtWebServerRootPath.Text);
 
FileCopier myCopier = new FileCopier(this.lstSysDrive.SelectedItem.ToString(), this.lstDrive.SelectedItem.ToString(), this.txtWebServerRootPath.Text);
 
myCopier.copyFiles();

und hier der Konstruktor der mir so Probleme macht da er keinen echten String sondern einen @-String kriegt (was immer das bedeuten soll).

Code:
public FileCopier(string sysDrive, string CDDrive, string webSrvRootPath)
 
{
 
System.Console.WriteLine(sysDrive);
 
System.Console.WriteLine(CDDrive);
 
System.Console.WriteLine(webSrvRootPath);
 
cdRom = cMonCDDrive;
 
systemDrive = sysDrive;
 
webServerRootPath = webSrvRootPath;
 
}

cdRom enthält hier z.B. den Wert : @"D:\" anstatt D:\

Ich hoffe mir kann einer helfen.

Grüße
Speedy
 
Hi.

Funktioniert es deswegen nicht?!

Ich schätze du schaust im Auto/Lokal oder eines der Überwachen Fenster beim Debugger von VisualStudio nach, oder?

Nun, der Backslash wird ja zum escapen benutzt. Wenn du D:\ direkt im Code in einem String speichern willst müsstest ja string bla = "D:\\"; oder string bla = @"D:\"; schreiben.
Das @ bewirkt, das keine Escape-Sequenzen ausgewertet werden.

MfG,
Alex
 
OK Danke das bringt mich schonmal ein Stück weiter, dann kann es vielleicht an etwas anderem liegen.

Ich versuche halt auf ein Directory zuzugreifen und er sagt mir :

Das angegebene Pfadformat wird nicht unterstützt

Fehler in mscorelib oder sowas.

Also dachte ich daß es an dem übergebenen Strings liegen muss aber nun gut dann werde ich auch noch andere Dinge prüfen müssen.

Danke erstmal.
 
Zurück