2 HAZİRAN 2010, ÇARŞAMBA
Genel TryParse
Kullanan genel bir uzantısı oluşturmak için çalışıyorum 'TryParse' eğer bir dize belirli bir türü için kontrol edin
public static bool Is<T>(this string input)
{
T notUsed;
return T.TryParse(input, out notUsed);
}
bu olamaz sembol gidermek olarak derlemek olmaz'' . TryParse
Anladığım kadarıyla, '' herhangi bir arabirim bir parçası değil. TryParse
Bütün bunları yapmak mümkün mü?
Güncelleme:
Buldum aşağıda cevapları kullanarak:
public static bool Is<T>(this string input)
{
try
{
TypeDescriptor.GetConverter(typeof(T)).ConvertFromString(input);
}
catch
{
return false;
}
return true;
}
Oldukça iyi çalışıyor ama bu şekilde istisnalar kullanarak bana doğru gelmiyor bence.
Update2:
Değiştirilmiş kullanım jenerik yerine: tür geçirilecek
public static bool Is(this string input, Type targetType)
{
try
{
TypeDescriptor.GetConverter(targetType).ConvertFromString(input);
return true;
}
catch
{
return false;
}
}
CEVAP
2 HAZİRAN 2010, ÇARŞAMBA
TypeDescriptor sınıfı kullanmanız gerekir:
public static T Convert<T>(this string input)
{
var converter = TypeDescriptor.GetConverter(typeof(T));
if(converter != null)
{
//Cast ConvertFromString(string text) : object to (T)
return (T)converter.ConvertFromString(input);
}
return default(T);
}
elbette bu dönüşüm yakala/denemek istiyorum, böylece başarısız olursa, bir özel durum oluşturur.
Bunu Paylaş:
Nasıl bir yöntem döndürme türü genel y...
nasıl jackson, sadece alanlarını belir...
Tüm modülleri genel etmesinin önünü ka...
Genel bellek yönetimi C yığın veya yığ...
"Ayrıştırıcı Hata İletisi: yük ti...