Я не знаю, является ли это правильным заголовком, поэтому извиняйтесь за это, если это не так!Базовый класс Общий класс и класс наследования .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?
Спасибо.
Я не хочу, чтобы положить его в мой ответ, потому что это не про ваш вопрос, но вы уверены, что ваш дизайн в порядке? Класс с именем, заканчивающимся на «Исключение», который не наследуется от класса «Исключение», может не быть хорошей идеей. – MarcinJuraszek