Protected T tryparser <t> ( Object V, t dvalue ){ If (V = Null ){ Return Dvalue ;} Else {T = Default (T ); Try { If (T = Null ) // Null type {Type = Typeof (T); typeconverter Conv = Typedescriptor. getconverter (type); t = (T) Conv. convertfrom (V );} Else {T = (T) convert. changetype (V, Typeof (T ));}} Catch {T = Dvalue ;} Return T ;}} Protected T tryparser <t> ( String V, t dvalue ){ If ( String . Isnullorempty (V )){ Return Dvalue ;} Else {T = Default (T ); Try { If (T = Null ) // Null type {Type = Typeof (T); typeconverter Conv = Typedescriptor. getconverter (type); t = (T) Conv. convertfrom (V );} Else {T = (T) convert. changetype (V, Typeof (T ));}} Catch {T = Dvalue ;} Return T ;}}
Judge the null type
Bool isnullabletype (type thetype)
{
Return (thetype. isgenerictype & thetype.
Getgenerictypedefinition (). equals
(Typeof (nullable <> )));
}
Test of null type
// ==== Convert to string representation ========
Public static string convertostr (Object OBJ)
{
If (obj. GetType (). isprimitive | obj is string)
{
Return obj. tostring ();
}
If (isnullable (obj. GetType ()))
{
Return obj. tostring ();
}
// Execute XML serialization
Xmlserializer = new xmlserializer (obj. GetType ());
Stringbuilder sb = new stringbuilder ();
Xmlserializer. serialize (New stringwriter (SB), OBJ );
Return sb. tostring ();
}
Private Static bool isnullable (type T)
{
Return T. isgenerictype & T. getgenerictypedefinition () = typeof (nullable <> );
}