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.
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:
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".
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 Ссылка