반응형
이 캐스트가 중복되는 이유는 무엇입니까?
다음과 같은 오버로드가있는 메서드가 있습니다.
string Call(string function, Dictionary<string, object> parameters, object body)
string Call(string function, Dictionary<string, object> parameters, JObject body)
이제 다른 오버로드를 추가했습니다.
string Call(string function)
{
return Call(function, null, (JObject) null);
}
JObject컴파일러가 사용해야하는 오버로드를 알 수 있도록에 캐스트를 추가했습니다 . 그러나 Visual Studio는 캐스트가 중복되었다고 말합니다. 그런데 왜 캐스트 없이는 내 전화가 모호하지 않습니까?
그런데 왜 캐스트 없이는 내 전화가 모호하지 않습니까?
에 과부하 때문에 JObject매개 변수는 "더 나은"를 가진 과부하보다 object에서 변환하기 때문에 ... 매개 변수 null에 대한이 JObject의 전환보다는 "더 나은"입니다 null에 object.
JObject보다 더 구체적이다 object에서 암시 적 변환이 때문에, JObject에가 object있지만 그 반대의 경우도 마찬가지.
string예를 들어 첫 번째 메서드의 마지막 매개 변수가 대신 있으면 오버로드가 다른 것보다 나을 수 없으며 캐스트없이 호출 이 모호합니다.
모든 복잡한 세부 사항은 C # 5 사양의 섹션 7.5.3을 참조하세요. 특히 섹션 7.5.3.5 ( "더 나은 전환 목표")가 여기에 관련됩니다.
참고 URL : https://stackoverflow.com/questions/31745365/why-is-this-cast-redundant
반응형
'program story' 카테고리의 다른 글
| 내 ASP.NET Web API ActionFilterAttribute OnActionExecuting이 실행되지 않는 이유는 무엇입니까? (0) | 2020.10.31 |
|---|---|
| 물리 디스크를 나열하는 방법은 무엇입니까? (0) | 2020.10.31 |
| Android에 대한 READ_EXTERNAL_STORAGE 권한 (0) | 2020.10.30 |
| dtype ( 'O')은 무엇입니까? (0) | 2020.10.30 |
| R Markdown, Knitr, Pandoc 및 Bookdown의 관계 (0) | 2020.10.30 |