제목이 혼란스럽고 더 잘 설명하려고합니다. 기본적으로 방법 내에서 수행하고자하는 작업은 다음과 같습니다.참조 유형을 제네릭 유형으로 변환하십시오.
if (record["id"] != DBNull.Value) _id = Convert.ToInt32(record["id"]);
else id = -1;
데이터베이스에 저장된 여러 유형에 대해이 기능을 사용하고 싶습니다. (그래서 문자열이라면 문자열로 변환합니다). 이 작업을 수행하는 방법은 아무 문제가 없으며 메서드로 처리하려고했습니다. 나는 이것을 가지고 있지만 C#은 자동으로 int를 객체로 변환하지 않을 것이다. 아이디어?
private void Load(ref object var, object obj, object def)
{
if (var is int)
{
var = Convert.ToInt32(obj);
}
}
int _id;
Load(ref _id, record["id"], -1);
명확히하기 위해 내 오류는 "ref int에서 ref object로 변환 할 수 없습니다"입니다. 도움 주셔서 감사합니다.
여전히 동일한 오류가 발생합니다. 매개 변수 유형이 일치하지 않습니다. – mrK
또한 def는 단지 기본값입니다. – mrK
그렇다면 foo == DBNull.Value 일 경우 어떻게됩니까? – mrK