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.
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.
Die Verwendung des Schlüsselworts "var" ist in der Regel umstritten. Die "maßgebliche" Referenz für diese Debatte ist Ссылка
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:
Type x = new Type(...);
) 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".
Tags und Links c# resharper implicit-typing