Mam ten kod:Visual Studio 2017 15,3 Uproszczenie zerową kontrolę
public UnityResolver(IUnityContainer container)
{
if (container == null) throw new ArgumentNullException("container");
_container = container;
}
Visual Studio pokazuje 3 szare kropki i sugeruje, aby uprościć sprawdzanie NULL.
To czyni tę metodę:
_container = container ?? throw new ArgumentNullException("container");
To nie budowy ...
Co tu się dzieje? Dlaczego uważa, że może to uprościć i dlaczego upraszcza ją do czegoś, co nie jest budowane?
Błąd to daje to:
1>L:\SL1-(SentiLAN)-SentiLAN v1 - Current System\SentilanCore\WEB API with Plugins\APITest2\App_Start\UnityConfig.cs(31,39,31,44): error CS1525: Invalid expression term 'throw'
1>L:\SL1-(SentiLAN)-SentiLAN v1 - Current System\SentilanCore\WEB API with Plugins\APITest2\App_Start\UnityConfig.cs(31,39,31,44): error CS1002: ; expected
_container = pojemnik ?? throw nowy ArgumentNullException ("container"); powinien poprawnie budować. wygląda jak poprawny kod –
Jak się budujesz? To jest dziwny format komunikatu o błędzie dla Visual Studio. Domyślam się, że niezależnie od procesu kompilacji używasz kompilatora C# 6. –
@Jon Skeet. Buduję używając VS2017 i wciskając F5. Co ciekawe, w oknie błędów nie wyświetla się żaden błąd, ale 2 błędy pojawiają się w oknie wyjściowym w oknie Build. – Stuart