SA1125: UseShorthandForNullableTypes hat diese Beschreibung (aus StyleCop 4.7 Editor Anwendungseinstellungen):SA1125: warum erzwingen "int?" im Gegensatz zu "Nullable <int>", aber nicht innerhalb von "typeof()"?
Erzwingt die Verwendung der Kurzschrift eines Nullable Types anstelle der
Nullable<T>
außer in einemtypeof()
.
Gibt es einen Grund, warum es die Ausnahme für typeof()
Aussage hat? typeof(int?)
kompiliert genauso gut - ist das nur eine Vorliebe von StyleCop-Autoren oder gibt es eine tiefere Begründung?
bearbeiten: da die offizielle Dokumentation nicht über diese Ausnahme erwähnen, ich getestet, um den folgenden Code ein:
var x = new Nullable<int>();
var y = new int?();
var z = typeof(Nullable<int>);
var v = typeof(int?);
Ergebnis: nur die erste Zeile stellt sich die SA1125 Warnung.
Edit 2: The work item for StyleCop asking to fix this behavior
Wo finden Sie die Beschreibung, die Sie zitiert werden? Sicherlich nicht in dem von Ihnen bereitgestellten Link und auch nicht in der [offiziellen Dokumentation] (http://www.stylecop.com/docs/SA1125.html) –
Ich würde einen Fehler vielleicht vorschlagen, oder eine verpasste Anforderung. ReSharper fordert mich auf, 'Nullable' als 'int?' Auch in 'typeof()' neu zu schreiben. –
Ich habe die Beschreibung im StyleCop Einstellungs-Editor gefunden. Jetzt ist die Frage, ob es genau ist ... –