이것이 올바른 제목인지는 모르겠지만, 그렇지 않다면 사과드립니다! 내 기본 클래스에서 상속기본 클래스 Generic and inheritance class .NET
내가있어public class BaseException
{
public bool HasException { get; set; }
public string ExceptionMessage { get; set; }
}
다른 클래스 :
public class BoolValue : BaseException
{
public bool Value { get; set; }
}
public class LongValue : BaseException
{
public bool Value { get; set; }
}
을이 발생하면
나는 예외를 저장하는 데 사용되는 기본 클래스를 가지고 내가 그것을 호출 할 때
그래서, 나는 내가 할 수 세트 수 있습니다 일반적인 함수를 생성 할
function LongValue MyFirstFunction()
{
LongValue data = new LongValue();
try
{
data = ....
}
catch (Exception ex)
{
data = BuildException<LongValue>(ex, data);
return data;
}
finally
{
data = null;
}
}
function BoolValue MySecondFunction()
{
BoolValue data = new BoolValue();
try
{
data = ....
}
catch (Exception ex)
{
data = BuildException<BoolValue>(ex, data);
return data;
}
finally
{
data = null;
}
}
될 것입니다 예외 사항 오류가 발생하지만 원래 클래스 형식을 반환 즉 LongValue로 또는 경우 LongBool입니다
protected T BuildException<T>(Exception exception, T obj)
{
}
하지만은 HasException 및 ExceptionMessage을 설정하는 방법에 확신도 컴파일러는 말하고있다대로 작동하지 않습니다 주조로 나 나는 이런 식으로 뭔가로 내 마지막 기능을 싶습니다 BaseException
에((BaseException)data).HasException = true;
을은 T를 변환 할 수 없습니다 :이 달성 할 수있는 방법이 있나요
protected T BuildException<T>(Exception exception, T data)
{
((BaseException)data).HasException = true;
((BaseException)data).ExceptionMessage = exception.Message;
return data;
}
또는 내 BaseException에 대한 인터페이스를 작성해야합니까?
감사합니다.
있지만 있는지 당신의 디자인은 OK인가? 'Exception' 클래스에서 상속받지 않는'Exception'으로 끝나는 이름을 가진 클래스는 좋은 생각이 아닙니다. – MarcinJuraszek