Implizite Typisierung verwenden [duplizieren]

8

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 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.

    
soandos 05.06.2011, 20:56
quelle

3 Antworten

7

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.

    
Jon Skeet 05.06.2011, 21:00
quelle
5

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

    
Robert Levy 05.06.2011 21:01
quelle
2

Der Grund, warum ReSharper Ihnen vorschlägt, var 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 var anstelle des tatsächlichen Typs verwenden, wenn:

  • Sie konstruieren ein Objekt (zB. Type x = new Type(...); )
  • Sie initialisieren es mit einer Konstante (zB int x = 5; )

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 var 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 var 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".

    
quelle

Tags und Links