1
我不知道这是否是正确的标题,所以如果不是这样的道歉!基类泛型和继承类.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,因为即使铸塑编译器告诉它不工作我,我可以一件T不能转换为BaseException
((BaseException)data).HasException = true;
我想我的最终功能是这样的:
protected T BuildException<T>(Exception exception, T data)
{
((BaseException)data).HasException = true;
((BaseException)data).ExceptionMessage = exception.Message;
return data;
}
有没有一种方法,我可以做到这一点或我应该为我的BaseException创建一个接口吗?
谢谢。
我不想把它放在我的答案,因为这不是你的问题,但你确定你的设计是OK?名称以'Exception'结尾的类不能从'Exception'类继承,这可能不是一个好主意。 – MarcinJuraszek