Saya mencoba menulis metode validasi. Misalnya: untuk double tampilannya seperti ini:
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;
}
Apakah mungkin untuk menulis ini sebagai:
protected bool ValidateLoopAttributes<T>(string i_value, T i_threshold)
dan kemudian gunakan sesuatu seperti
T.GetType().TryParse() // how can i use here the type's methods??
Apakah menggunakan pernyataan switch/if satu-satunya cara untuk melakukan ini? Misalnya:
If (T.GetType() is int)
Int32.TryParse(i_threshold)
Apakah ada cara yang lebih elegan?
GetType()
adalah metode instan, jadiT.GetType()
bahkan tidak boleh dikompilasi. Anda perlu menggunakantypeof(T)
. - person Cristian Lupascu   schedule 13.04.2012ValidateLoopAttributes(string i_value, double i_threshold)
danValidateLoopAttributes(string i_value, int i_threshold)
(ataulong
)? - person Rawling   schedule 13.04.2012