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