nullable相关内容
我创建一个通用的转换 下面是通用转换器的采样code 布尔TryReaderParse< Af - Ag型>(对象数据,出Af - Ag型值) { 值=默认值(Af - Ag型); 类型的返回类型= typeof运算(Af - Ag型); 反对tmpValue = NULL; 如果(返回类型== typeof运算(日期时间))
..
请看看下面的行 <文本框文本=“{结合价格}”/> 从上面这个价格属性是十进制?(可空十进制)。 我想,如果用户删除文本框的内容(即进入空字符串,它应该automatcally更新源空(在VB中为Nothing)。 我如何能做到这一点“Xamly”任何想法? 解决方案 我使用.NET 3.5 SP1所以这是非常简单的: <文本框文本=“{结合价钱,Targ
..
如果我有一个对象引用,引用字节?,短?或诠释?,有没有办法无条件地投或转换的对象引用为int?无需编写单独的code每个案例? 例如: 字节? aByte = 42; // ..或aByte = NULL object对象= aByte; // ... VAR ANINT =(INT?)anObject //正如预期的那样,无法正常工作 解决方案 我会使用 对象o = ...; //
..
我做了正确的LINQ两个DataTable之间的连接。我在排序依据行“”指定的转换无效“。得到一个错误 “SomeOtherID”列的类型是System.Int64在DBML,并允许为DBNull。该列中的数据,这是有效的一些空值。这似乎以某种方式在排序依据语句来处理这些空值有,但我不知道怎么样。的数据即将在通过Web服务。我检查了reference.cs文件和列对应的属性是int。 应该如何
..
有一个转换器在.NET 4.0中支持可空类型之间的转换,缩短像说明: 布尔? nullableBool = GetSomething(); 字节? nbyte = nullableBool.HasValue? (字节?)Convert.ToByte(nullableBool.Value):空; 解决方案 这并不是说我知道。 你可以只写一个辅助方法是这样的: 市民可空< TTar
..
我有一些可为空双字段的表。与LinqToSQL试图直接使用我已经得到了外地打工“参数类型System.Nullable不是分配给参数类型双”。如何处理这是否正确? 解决方案 问题无关使用LINQ。它有什么关系之间的转换双和一倍 / 可空<双> 。 这是隐式转换一倍到双是不允许的: 翻番? FOO; 双条= foo的; 您可以直接引用的双重价值: 翻番? FOO;
..
谁能告诉我,为什么做的第一下面的语句抛出一个编译错误,第二个不? NewDatabase.AddInParameter(NewCommand,“@SomeString”,DbType.String,SomeString ??的DBNull.Value); //< - 抛出编译错误! NewDatabase.AddInParameter(NewCommand,“@SomeString”,
..
我们正在创造一些将最初由.NET客户端,但在未来会被消耗到Java客户端使用WCF服务。 因此,我们希望避免使用任何类型的数据在该Java不支持的接口。 在特定的一个,我们知道的是空值类型。 一个建议是,我们可以通过使用一个字符串来重新present,例如,可为空INT支持这些。而空字符串,因此重新presents空,否则有要求的字符串必须是可解析为一个int。 谁能推荐一个更好的选择
..
据我所知,装箱和拆箱是关于铸造(实型对象...对象实型)。但我不明白的MSDN说什么关于它的可空。这是我不明白的文字: 在可空类型进行装箱时,公共语言运行库自动箱可空对象的基础值,而不是可空对象本身。也就是说,如果HasValue属性为true,则Value属性的内容装箱。当可空类型的基础值为拆箱,公共语言运行库创建初始化为基础值一个新的可空结构。 来源 当你改变你的对象为实型,这是为空的
..
我想写为空的一个枚举的扩展方法的。照片 就像这个例子: //的ItemType是一个枚举 ITEMTYPE?项目; ... item.GetDescription(); 所以我写了这个方法,它不会编译由于某种原因,我不明白: 公共静态字符串GetDescription(此枚举?theEnum) { 如果(theEnum == NULL) 返回的String.
..
于是,一对夫妇的问题,实际上是: 的 INT (的Int32 )被指定为(显然)32位。怎么样一个 INT (可空< INT> )?我的直觉告诉我,这将是32位整数加上8个位布尔,但也许是实现比这更复杂。 我会回答用我自己的问题的sizeof(INT?);但作为诠释?是托管型,这是不允许的。据我所知,一个类型的大小可能是依赖于平台的,而且其中包含对其他对象的对象的情况下,的sizeo
..
如何获得短日期为获取短期日期系统可为空的日期时间(日期时间?) 有关ED 12/31/2013 12:00:00 - >只应返回 12/31/2013 。 我没有看到 ToShortDateString 可用。 解决方案 您需要使用。价值第一(因为它是可为空)。 VAR ShortString短= yourDate.Value.ToShortDateString(); 但也检查
..
我今天也参加了这个有趣的讨论,同事。我们是在C#中讨论两件code。 code片段1: 如果(!reader.IsDBNull(2)) { 长?变量1 = reader.GetInt64(2) } code片段2: 长变量1 = reader.IsDBNull(2)? (?长)空:reader.GetInt64(2) 问题是:这是一个很好的做法,投空成一个可空长?或者你
..
我们正在组装暴露于COM。 在其他方面,我们使用频率空的值,如长时间?日期时间?等等,这些都是通用的类型,不能向COM公开。 什么是一个很好的替代品,这些数据类型COM? 我们已经尝试了以下内容: 类 //原客户ID属性 众长?客户ID { 得到; 组; } //显式COM接口 长IComInterface.CustomerID { {返回CustomerID.GetV
..
使用反射我如何可以转换为可空的字符串? 我有以下的code转换到几乎放弃几乎所有值的值类型。有相当多的code以上这种使用IsAssignableFrom等,所以这是最后的手段。 MethodInfo的解析= t.GetMethod(“解析”,新类型[] {typeof运算(字符串)}); 如果(解析!= NULL) { 对象解析= parse.Invoke(空,新的对象[] {v
..
有很多语法糖与可空< T> 像: 诠释?解析到可空< INT> 诠释? X =空 如果(X!= NULL)//解析为IF(x.HasValue) X = 56; //解析,以x.Value = 56; 等等。 为什么如果条件可空不起作用? 如果(X) {} 它让编者错误说不能转换可空<布尔> 到布尔 为什么它没有被解析到如果
..
可能是它是一个简单的问题,但我尝试所有转换方法!它仍然有错误! 你会帮我吗? 十进制? (可空十进制)以十进制 解决方案 有很多的选择...... 十进制? X = ... 小数A =(十进制)X; // 作品;抛出如果x为空 小数B = X 21 123M; // 作品;默认为123M如果x为空 小数C = x.Value; // 作品;抛出如果x为空 小数D = x.GetValue
..
有关我自己的实现等号()方法,我想查了一堆内部字段。我这样做是这样的: ... _myNullableInt == obj._myNullableInt和放大器;&安培; _myString == obj._myString和放大器;&安培; ... 我会假设,这比较值,包括空,平等不是对象的地址(作为参考euqality比较操作会),因为: 这是这么说的“predefined值类
..
我有一类与众多可空< T>我想序列化到XML的属性的属性。这显然是一个没有没有,因为他们被认为是“复杂类型”。所以,相反,我实现了*指定的模式,我在那里创造的附加价值*和*指定属性如下: [XmlIgnore] 公众诠释?年龄 { {返回this.age; } 集合{this.age =价值; } } [XmlAttribute(“时代”) 公众诠释AgeVal
..
我遇到可空和隐式转换之间的相互作用一些有趣的行为。我发现,提供一个隐式转换为从值类型引用类型它允许可空键入要传递给需要引用类型的函数时,我反而期待一个编译错误。下面code说明了这一点: 静态无效的主要(字串[] args) { PrintCatAge(新猫(13)); PrintCatAge(12); 诠释?猫= NULL; PrintCatAge(猫); }
..