, 당신은 필요가 다른 부분은 당신이 문자열 값을 반환해야보다 실행하지만, 거기에는 반환이되지 않는 경우
이유는 이 함수를 통해 가능한 모든 경로가 결국 값을 반환하도록 보장해야합니다.
public string Valid(OleDbDataReader myreader, int stval)
{
object val = myreader[stval];
if (val != DBNull.Value)
{
return val.ToString() ;
}
else
{
Convert.ToString(0);
}
}
내 자신의 개인적인 의견을 : 그것은 아무것도에게 반환되지는 else
절을 입력하고 단순히 함수의 끝까지 떨어질 것 때문에 귀하의 경우에는
는, 값은
myreader[stval]
이
DBNull.Value
동일한 경우는 반환되지 않습니다 이 더 잘 것을 기록 될 것입니다 : 즉
public string Valid (OleDbDataReader myreader, int stval) {
object val = myreader[stval];
if (val != DBNull.Value)
return val.ToString() ;
return Convert.ToString(0);
}
,이 일어날 수 있도록 끝 부분에 기본 케이스를 제공하는 것이 좋습니다. 나는 형태의 코드를 볼 때마다 싫증이 나다 :
은 (들여 쓰기 지옥뿐만 아니라) 불필요하게 복잡하고 귀하의 질문에 여기에 설명 된 문제를 정확하게 정렬로 이어질 수 있기 때문에
if something:
return or exit
else:
do something else
. 훨씬 더 (다시, 이것은 내 의견은 있지만 경험이 너무 많은 년에 의해 뒷받침)을 간단 사용 :
if something:
return or exit
do something else
당신은 어떻게 생각하십니까 오류가 의미? – thekip
@thekip 모든 코드 경로가 값을 반환하는 것은 아닙니다. :) –
당신의'else .....'블록은 ** 어떤 ** 값도 반환하지 않습니다 ..... 그 오류는 분명히 ..... ..... –