Ich habe einen Code, in dem ich eine Variable "var" deklarieren muss, da sich der Typ basierend auf der Anfrage ändert. Diese Erklärung muss in einem Try-Block hergestellt werden, um alle Ausnahmen zu fangen:Implizit typisierte lokale Variablen müssen initialisiert werden: Bereichsdefinition
try
{
var calc = (Type1)obj;
var results = calc.Function();
}
catch
{
var calc = (Type2)obj;
var results = calc.Function();
}
finally
{
return results;
}
Das Problem ist jetzt, „Ergebnisse“ wird nicht funktionieren, da der Umfang außerhalb try catch-Block endet. Es gibt keine Möglichkeit, var außerhalb des Versuchs zu deklarieren, da ich auf Typecasting prüfen und den Typ entsprechend ändern muss.
Typ1, Typ2 sind verschiedene Schnittstellen und obj ist wieder "var", die verschiedene Typen haben können.
Ich kann nicht var außerhalb try Block als Null initiieren. Wie kann ich das herausfinden?
Wenn Sie einen 'var' als' null' initialisiert, was Typ würdest du erwarten, dass es ist? 'var' ist nicht dasselbe wie' object' noch 'dynamic'. Sie sollten wirklich die Dokumentation zu 'var' lesen, Sie sind weit davon entfernt, es zu verstehen. –
Ich weiß, ich versuche nicht, es als null zu initialisieren. Das ist nicht meine Hauptsorge. Ich suche nur nach den "Ergebnissen", die entweder ein Dataset oder eine Datentabelle sein können, je nachdem, ob der try-Block ausgeführt oder catch-Block ausgeführt wird. – user5820237
'var' kann Ihren Code verschleiern, missbrauchen Sie ihn nicht. Es macht oft Ihren Code viel lesbarer und verständlicher, wenn Sie die Typen erwähnen, umso mehr, wenn Sie Rückgabetypen von Methoden verwenden. –