ConvertTo Nullable

public static T ConvertTo<T>(object value)
{
if (value == null)
{
return default(T);
}
var type = typeof(T);
if ((type.IsGenericType && type.GetGenericTypeDefinition().Equals(typeof(Nullable<>))))
{
return (T)Convert.ChangeType(value, type.GetGenericArguments()[0]);
}
else
{
return (T)Convert.ChangeType(value, type);
}
}

时间: 2024-08-05 13:12:51

ConvertTo Nullable的相关文章

谈谈Nullable&lt;T&gt;的类型转换问题

本篇文章讨论可空值类型(Nullable<T>)的转换,却确地说是如何将一种类型的值对象转换成相应的可空值.这来源于今天我们的一个成员遇到的一个小问题,我经过一些整理写了这篇文章.虽然没有什么技术含量可言,也希望对某些读者带来帮助. 目录 一.四种典型的值类型转换方式 二.当类型转换遭遇Nullable<T> 三.将基于Nullable<T>的类型转换实现在扩展方法中 四.进一步完善扩展方法ConvertTo 五.谈谈NullableTypeConverter 一.四种

UNIQUE NullAble

一般情况 UNIQUE 不应该出现nullable的 但是如果我们要支持也是有办法的,就是写一个filter. https://msdn.microsoft.com/en-us/library/ms187019.aspx <--参考 right click add New Index 时记得关掉table,打开的话是不允许add的. set 好一般的UNIQUE后, 在filter 加上 ([columnName] IS NOT NULL) 就可以了.

KVC - (void)setValue:(nullable id)value forKey:(NSString *)key;

关于KVC的方法 - (void)setValue:(nullable id)value forKey:(NSString *)key; 从上面的参数类型可以看出,value必须是一个对象,可以为nil对象. 当你的属性是@property (nonatomic, assign) NSInteger testNum; 则在使用KVC时,必须将其转换成NSNumber对象,或NSString对象.但不能转换成数组等其他对象类型. [self setValue:@99 forKey:@"testNu

编译器实践四 之 FIRST集合,NULLABLE集合,FOLLOW集合

闲来无事,就把龙书拿出来有看了看,把最近学的总结一下. FIRST(X)集合定义:可从X推导得到的串的首符号的集合,其中X是任意文法符号.如果X=>······=>ε ,那么ε也在FIRST(X)中.(定义来自龙书) 算法伪代码(非准确版): <span style="font-size:14px;">foreach(nonterminal N) FIRST(N) = {} while(some set is changing) foreach (product

可设置空值(Nullable)的DateTimePicker

由于WinForm自带的DateTimePicker不能设置空值(Null),所以我基于原来的DateTimePicker做了扩展. 若有bug,可反馈,我再修改. using System; using System.ComponentModel; using System.Windows.Forms; namespace WinFormTest { public class DateTimePicker2 : DateTimePicker { const string NullableFor

Android工程中javax.annotation.Nullable找不到的替代方案

http://androidren.com/index.php?qa=315&qa_1=android%E5%B7%A5%E7%A8%8B%E4%B8%ADjavax-annotation-nullable%E6%89%BE%E4%B8%8D%E5%88%B0%E7%9A%84%E6%9B%BF%E4%BB%A3%E6%96%B9%E6%A1%88 我们在某些Android开源库中会遇到下面的引用找不到的问题: import javax.annotation.Nonnull; import ja

【C#】可空类型(Nullable)

C# 可空类型(Nullable) C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值. 例如,Nullable< Int32 >,读作"可空的 Int32",可以被赋值为 -2,147,483,648 到 2,147,483,647 之间的任意值,也可以被赋值为 null 值.类似的,Nullable< bool > 变量可以被赋值为 true 或 false 或 null.

当As操作符遇上Nullable

先上一段代码: public static TOut? ConvertTo<TOut> ( Double i_input ) where TOut: struct { return i_input as TOut?; } 这是一个很普通的泛型方法,有以下几个特点: 1)将Double类型的数值转化为一个可空类型的实例返回,同时这个返回的实例的基本类型是值类型 2)这种转换使用了as操作符,as操作符的一个特点是,如果转换失败,返回的就是null. 很不幸的是,但凡TOut不是Double类型,

数据类型之Nullable

Nullable 此结构在 .NET Framework 2.0 版中是新增的. 数据类型之Nullable,布布扣,bubuko.com