SA1125: UseShorthandForNullableTypes ma ten opis (wzięte z StyleCop 4.7 Ustawienia aplikacji editor):SA1125: dlaczego egzekwować "int?" w przeciwieństwie do "Nullable <int>", ale nie w "typeof()"?
wymusza stosowanie skrót typu wartości pustych aniżeli
Nullable<T>
wyjątkiem wewnątrztypeof()
.
Czy istnieje powód, dla którego ma wyjątek dla oświadczenia typeof()
? typeof(int?)
kompiluje się równie dobrze - czy jest to po prostu preferencja autorów StyleCop, czy istnieje głębsze rozumowanie?
Edit: skoro oficjalna dokumentacja nie wspominając ten wyjątek, testowałem następujący kod:
var x = new Nullable<int>();
var y = new int?();
var z = typeof(Nullable<int>);
var v = typeof(int?);
Wynik: tylko pierwsza linia podnosi ostrzeżenie SA1125.
Edycja 2: The work item for StyleCop asking to fix this behavior
Gdzie można znaleźć opis jesteś powołując? Z pewnością nie w podanym linku, a także w [oficjalnej dokumentacji] (http://www.stylecop.com/docs/SA1125.html) –
Sugerowałbym prawdopodobnie błąd lub nieudane wymagania. ReSharper prosi mnie o przepisanie 'Nullable' jako 'int?' Nawet w 'typeof()'. –
Znalazłem opis w edytorze ustawień StyleCop. Teraz pytanie brzmi, czy to jest dokładne ... –