Tôi hiện đang sử dụng phương pháp khuyến nông chuyển đổi hữu ích này để làm chuyển đổi giữa các loại:Làm thế nào tôi có thể sửa lỗi này để thực hiện chuyển đổi chung thành Nullable <T>?
public static T To<T>(this IConvertible obj)
{
return (T)Convert.ChangeType(obj, typeof(T));
}
Tuy nhiên, nó không giống như chuyển đổi các giá trị hợp lệ để Nullable, ví dụ, điều này không:
"1".To<int?>();
Rõ ràng , 1 có thể dễ dàng chuyển đổi thành một (int?), Nhưng nó bị lỗi:
Invalid cast from 'System.String' to 'System.Nullable`1[[System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'.
Đây là một ví dụ đơn giản rõ ràng, thực tế tôi là chúng tôi để thực hiện chuyển đổi từ các loại chuỗi như vậy:
packageDb.Quantity = package.package.ElementDeep(Namespace + "PackageQuantity", Namespace + "ActualQuantity", Namespace + "Quantity").ValueOrNull().To<int?>();
Nếu Convert.ChangeType không thích Nullable, bất kỳ ai có ý tưởng tuyệt vời?
Xem câu hỏi của tôi: http://stackoverflow.com/questions/773078/c-convert-string-to-nullable-type-int-double-etc –