implicit-typing

___ qstntxt ___

Gibt es einen Grund dafür, dass der Nachschärfer %code% im Gegensatz zu %code% vorschlägt? Es scheint nur, dass sie genau dasselbe bedeuten, außer dass Var für einen menschlichen Leser schwieriger / weniger verständlich ist. Ich wäre neugierig zu wissen, ob es einen Unterschied in der Art gibt, wie der Compiler sie interpretiert, oder ob es nur syntaktischer Zucker ist.

    
___ answer6245891 ___

Der Grund, warum ReSharper Ihnen vorschlägt, %code% zu verwenden, ist, dass es standardmäßig so konfiguriert ist.

Gehen Sie in die Optionen für ReSharper, suchen Sie unter "Code Inspection" die "Inspection Severity" -Einstellungen, und suchen Sie in der Liste die Einstellung "Benutze 'var', wenn möglich".

ReSharper wird standardmäßig mit der Standardeinstellung "Als Vorschlag anzeigen" vorschlagen, dass Sie %code% anstelle des tatsächlichen Typs verwenden, wenn:

  • Sie konstruieren ein Objekt (zB. %code% )
  • Sie initialisieren es mit einer Konstante (zB %code% )

In beiden Fällen ist ReSharper so programmiert, dass Sie annehmen können, dass Sie den richtigen Typ trotzdem leicht erkennen können, also können Sie %code% verwenden.

Wenn Sie das nicht möchten, ändern Sie diese Einstellung. Sie können diese Einstellung auch direkt in der Drop-down-Liste ändern, die Sie von Alt + Enter erhalten. Wählen Sie einfach das unterste Element im Dropdown-Menü:

und es öffnet sich ein Dialog, der fragt, wie man diese Einstellung behandelt:

Beachten Sie auch, dass wenn Sie ReSharper bitten, den Code in %code% zu ändern, wird nicht vorgeschlagen, dass Sie ihn zurückdrehen, aber Sie können , indem Sie Alt + Eingabetaste erneut drücken und die Option auswählen Option "Typ explizit angeben".

    
___ answer6245837 ___

Nein, die generierte IL ist genau gleich.

Ich vermute, wenn Sie den Vorschlag von Resharper aufgreifen, wird auch "vorschlagen", den anderen Weg zu gehen - IIRC der Standard ist immer die Möglichkeit, in beide Richtungen zu wechseln. Sie können jedoch ändern, was es innerhalb der Optionen vorschlägt.

    
___ qstnhdr ___ Implizite Typisierung verwenden [duplizieren] ___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123resharper ___ ReSharper ist eine Refactoring- und Produktivitäts-Erweiterung von JetBrains, die die native Funktionalität von Microsoft Visual Studio-Versionen seit 2003 erweitert. ___ answer6245841 ___

Die Verwendung des Schlüsselworts "var" ist in der Regel umstritten. Die "maßgebliche" Referenz für diese Debatte ist Ссылка

    
___ tag123implicityping ___ ImplicitTyping ist ein Begriff, der in diesem Wiki für jedes Sprachtypsystem vorgeschlagen wird, das wenige oder keine Typanmerkungen benötigt (Typdeklarationen von Variablen, Objektmembern, Funktionsargumenten usw.) - im Gegensatz zu ManifestTyping, in welchem ​​Typ Informationen enthalten sein müssen vom Programmierer zur Verfügung gestellt werden.Dieses Tag kann verwendet werden, wenn Probleme mit impliziten Typ der Typisierung verbunden sind ___
3
Antworten

Implizite Typisierung verwenden [duplizieren]

Gibt es einen Grund dafür, dass der Nachschärfer var thing1 = 5 im Gegensatz zu int thing1 = 5 vorschlägt? Es scheint nur, dass sie genau dasselbe bedeuten, außer dass Var für einen menschlichen Leser schwieriger / weniger verständlich...
05.06.2011, 20:56