일부 fxcop 문제를 해결하려고하는데이 문제에 대해 정말 혼란 스럽습니다.FxCop이 중복 캐스트 클래스를 제거하는 방법을 혼동합니다.
하지만, : 정확히 내가 같은 일이다'값', 매개 변수, 입력 캐스팅 'TYPEA을 : 할당이
if (!(value is TypeA)) { throw new ArgumentException("value is not of TypeA type"); } _action = (TypeA)value;
의 FxCop는 불평하게 할 필요가있는 경우 파생 클래스의 세터에서
, 나는 확인하고 '방법으로 여러 번. 잉여 castclass 명령어를 제거하기 위해 'as'연산자 또는 직접 형 변환의 결과를 캐시하십시오. 나는이 볼 this MSDN 예 (is
정의)에
if (o is Class1)
{
Console.WriteLine("o is Class1");
a = (Class1)o;
}
. 그래서, 이것에 대한 해결책이 있습니까?
내가 생각할 수있는 모든
은 다음과 같습니다TypeA tmpAction = value as TypeA;
if(tmpAction == null)
{
throw new ArgumentException();
}
_action = tmpAction;
네가 생각한 것은 정확하다. 그게 잘못이라고 생각하니? –
msdn이 내가하는 것과 똑같기 때문에 그것이 올바른지 혼란 스럽습니다. – Odys
MSDN에는 모범 사례로 간주되지 않는 많은 예제가 있습니다. 일부는 입력 유효성 검사를 건너 뜀으로써 의도적으로 단순하게 유지됩니다. – TrueWill