Я пытаюсь написать метод проверки. Например: для двойного это выглядит так:
protected bool ValidateLoopAttributes(string i_value, double i_threshold)
{
double result;
if (!(double.TryParse(i_value, out result) && result >= i_threshold))
{
return false;
}
return true;
}
Можно ли это записать так:
protected bool ValidateLoopAttributes<T>(string i_value, T i_threshold)
а затем используйте что-то вроде
T.GetType().TryParse() // how can i use here the type's methods??
Является ли использование оператора switch/if единственным способом сделать это? Например:
If (T.GetType() is int)
Int32.TryParse(i_threshold)
Есть ли более элегантный способ?
GetType()
— это метод экземпляра, поэтомуT.GetType()
не должен даже компилироваться. Вам нужно использоватьtypeof(T)
. - person Cristian Lupascu   schedule 13.04.2012ValidateLoopAttributes(string i_value, double i_threshold)
иValidateLoopAttributes(string i_value, int i_threshold)
(илиlong
)? - person Rawling   schedule 13.04.2012