konvertieren Ich habe Code, der eine Klasse verwendet, die von Java mit IKVM für .NET konvertiert wurde. Also mein Codebeispiel verwendet VAR, wenn die Klasse instanziiert wird, wie zum Beispiel:wie die Verwendung von VAR zu expliziten Typ in C#
var Something = new OriginallyFromJavaClass("c:\ReadInThisFile.txt");
Dann Methoden dieser Klasse etwas zu tun mit dieser Textdatei wie:
var analyze = OriginallyFromJavaClass.method1(whatever);
Beachten Sie, dass diese anderen Verwendungen der Klasse tun NICHT "Something" referenzieren, sondern nur den Java-Klassennamen ohne das "neue" Wort aufrufen.
Das Problem ist, dass das Lesen der Textdatei dauert einmal 30 Sekunden, also möchte ich es nur einmal in meiner WinForms-Anwendung und dann rufen Sie die anderen Methoden innerhalb einer Schaltfläche klicken. Aber wenn ich die obige Codezeile auf meine Klassenebene verschiebe, sodass ich die TXT-Datei nur einmal öffnen muss, schlägt der C# -Compiler fehl, weil VAR-Typen auf Klassenebene nicht zugelassen sind. Ich weiß grundlegend und aus GetType, um diese Variable auszuwerten, dass es eine Klasse ist. Also, wie würde ich das oben genannte mit expliziten Typen restrukturieren und wo ich die Klasse (also so, dass sie meine TXT-Datei liest) nur einmal instanziieren?
Welcher Typ ist es? Das ist der Typ, der es ist. Benutze diesen Typ. Der Code sagt 'new OriginalFromJavaClass()'. Das ist der Typ, der es ist. Das ist es Typ. Der Typ eines Objekts ist die Klasse, die es ist. Die Klasse ist der Typ. Deklarieren Sie das Feld als diesen Typ. Welcher andere Typ könnte es sein? Sieht es so aus, als ob Sie dort eine ganze Zahl erstellen? ** Hast du * irgendetwas * versucht? ** –
'OriginalFromJavaClass Something = neu OriginalFromJavaClass (@" c: \ ReadInThisFile.txt ");' – itsme86
Finde einfach heraus, welchen Typ die Variable hat und ersetze 'var' mit was auch immer dein Typ ist ...? d. h. 'var Something =' würde 'OriginalFromJavaClass Something =' – nhouser9