Entwickler-Ecke
Basistechnologien - Objektreferenz in C# erstellen
GerhardS - Mi 26.06.19 12:53
Titel: Objektreferenz in C# erstellen
Hallo,
wahrscheinlich bin ich noch zu sehr von ObjectPascal geprägt, wenn ich den Fehler in folgendem Code nicht sehe:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| public class Commons { public bool CreateDir(string dirname) { try { using (var sftp = new SftpClient(MainForm.WebHosting.Host, MainForm.WebHosting.UserName, MainForm.WebHosting.Pw)) { string rootdir = @"/home/gustav/"; sftp.Connect(); sftp.ChangeDirectory(rootdir); sftp.CreateDirectory(dirname); sftp.Disconnect(); } } catch (Exception ex) { MessageBox.Show("Compilermeldung: " + ex.Message); return false; } return true; } } |
Der Compiler bemängelt beim Aufruf der Methode CreateDir(string dirname) aus einer anderen Klasse heraus, es sei eine Objektreferenz erforderlich. Kann mir jemand zeigen, wie ich von CreateDir diese Referenz erstelle?
Moderiert von Christian S.: Code- durch C#-Tags ersetzt
Ralf Jansen - Mi 26.06.19 13:04
Du möchtest scheinbar die Methode aufrufen ohne vorher die Klasse zu erzeugen (also ohne
new in C# oder ehemals
Klasse.Create() in Object Pascal).
Dazu muss die Methode statisch sein (du mußt
static zur Signatur hinzufügen). Commons klingt nach einem Ding das man eh nie instanziieren will insofern kannst du gleich die ganze Klasse als
static markieren.
Edit : Wo kommt MainForm in deinem Code her? Gefühlt hast du hier noch mehr Probleme.
Moderiert von Th69: C#-Tags hinzugefügt
Moderiert von Th69: Delphi-Tags hinzugefügt
GerhardS - Mi 26.06.19 13:58
Danke für den Hinweis auf die Signatur. Mit
public static bool CreateDir(string dirname) akzeptiert VS 2019 den Code. Weitere Probleme mit dem Compiler habe ich nicht. Jetzt kann ich testen, ob die Anwendung das tut, was ich mir vorgestellt habe.
Moderiert von Th69: C#-Tags hinzugefügt
Moderiert von Th69: Vollzitat entfernt.
Th69 - Mi 26.06.19 14:30
Das, was Ralf meint, ist, daß du MainForm innerhalb deiner allgemeingültigen Klasse Commons nicht verwenden solltest, da du damit eine unnötige Abhängigkeit herstellst.
Übergebe doch am besten Host, UserName und Password als Parameter der Methode.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!