요청에 따라 형식이 변경되므로 "var"변수를 선언해야하는 코드가 있습니다. 이 선언은 예외를 잡기 위해 try 블록 내에서 만들 수있다 : 범위 외부의 try catch 블록을 종료 이후 암시 적으로 형식화 된 로컬 변수를 초기화해야합니다. 범위 정의
try
{
var calc = (Type1)obj;
var results = calc.Function();
}
catch
{
var calc = (Type2)obj;
var results = calc.Function();
}
finally
{
return results;
}
지금 문제는, "결과는"작동하지 않습니다됩니다. 타입 캐스팅을 검사하고 그에 따라 타입을 변경해야하기 때문에 var를 try로 선언 할 수는 없습니다.
유형 1, 유형 2는 다른 인터페이스이며 obj는 다른 유형을 가질 수있는 "var"입니다.
var 외부 try 블록을 null로 시작할 수 없습니다. 어떻게해야합니까?
, 무엇을 타입은 당신이 그것을 기대합니까? 'var'는'object' 나'dynamic'과 같지 않습니다. 'var'에 대한 문서를 정말로 읽어야합니다. 여러분은 그것을 이해하는 것을 멀리하고 있습니다. –
저는 null로 초기화하려고하지 않습니다. 그것은 내 관심사가 아닙니다. 내가 찾고있는 것은 "결과"를 반환하는 것입니다.이 결과는 try 블록이 실행되는지 또는 catch 블록이 실행되는지에 따라 데이터 세트 또는 데이터 테이블이 될 수 있습니다. – user5820237
'var'은 코드를 혼란스럽게 만들 수 있습니다. 남용하지 마십시오. 반환 형식의 메서드를 사용하는 경우 형식을 언급하면 코드가 훨씬 읽고 이해하기 쉽습니다. –