क्या इसी तरह के निर्माण को लिखना संभव है?
मैं प्रकार टी के तर्क के लिए स्थापित करने के लिए, किसी भी तरह, डिफ़ॉल्ट मानजेनेरिक तरीके और वैकल्पिक तर्क
private T GetNumericVal<T>(string sColName, T defVal = 0)
{
string sVal = GetStrVal(sColName);
T nRes;
if (!T.TryParse(sVal, out nRes))
return defVal;
return nRes;
}
साथ ही चाहते हैं, मैं निम्नलिखित लिंक मिल गया: Generic type conversion FROM string
मुझे लगता है, इस कोड को काम करना चाहिए
private T GetNumericVal<T>(string sColName, T defVal = default(T)) where T : IConvertible
{
string sVal = GetStrVal(sColName);
try
{
return (T)Convert.ChangeType(sVal, typeof(T));
}
catch (FormatException)
{
return defVal;
}
}
हां, मैं TryParse को कॉल नहीं कर सकता। लेकिन शायद कुछ ऐसा ही हो सकता है? शायद पैरामीटर टाइप करने के लिए कुछ बाधा जोड़ें (मेरा मतलब है 'कहां: ...')? यदि संख्यात्मक प्रकार कुछ रूपांतरित इंटरफेस को लागू करते हैं। – hardsky
सीएलआर में "वर्चुअल स्टेटिक विधियों" की कोई अवधारणा नहीं है, संकलक एक प्रकार से स्थैतिक तरीकों का अनुमान नहीं लगा सकता है। जहां तक मुझे पता है कि इसके लिए कोई साफ समाधान नहीं है। अधिक जानकारी के लिए –
http://stackoverflow.com/questions/196661/calling-a-static-method-on-a-generic-type-parameter –