nullable相关内容
在C#中是可空原始类型(即布尔?)只是别名作为他们相应的可空< T> 类型或是两者之间有区别吗? 解决方案 如果你看看IL使用的 ILDASM ,你会发现,他们都编译到可空<布尔方式>
..
我90%肯定,我以前看到的计算器这个答案,其实我从来没有见过的“诠释?”语法之前看到它在这里,但无论我如何寻找我无法找到previous后,它的驾驶我疯了。 这可能是我一直偶然吃蘑菇滑稽,但如果我没有,可有人请指出previous后,如果他们能够找到它或重新解释一下吗?我的计算器搜索福显然是太低了...... 解决方案 诠释?是简写可空< INT方式> 这可能是你要找的信息
..
我想用DateTime.TryParse方法来获取一个字符串转换为可为空值的日期时间值。但是,当我试试这个: 日期时间? D组; BOOL成功= DateTime.TryParse(“一些日期文本”,出(日期时间)D); 编译器告诉我 “出”的说法是不属于变量 不知道我需要在这里做。我也试过:出(DATETIME)d.Value 和不工作的。任何想法? 解决方案 日期时间?
..
为什么这个不能编译? 诠释?数=真的吗? 5:空; 无法确定的条件前pression类型,因为有'廉政'和&lt之间不存在隐式转换;零> 解决方案 该规范(§7.14)说,对于有条件的前pression B? X:Y ,有三种可能性,无论是 X 和是都有一个类型和的一定的良好的条件的满足,只有的一个X 和是有一个类型的和的一定的良好的条件的满足,或者发生编译时错误。在
..
我要如何转换成一个可空 INT 到 INT ?假设我有2 int类型如下的: 诠释? V1; INT V2; 我要分配 V1 的价值 V2 。 V2 = V1; 将导致错误。如何转换 V1 到 V2 ? 解决方案 其他答案为止是正确的;我只是想增加一个这是稍微干净: V2 = V1?默认值(INT); 任何可空< T> 隐式转换为它的 T ,只要全程前pression正
..
在我们自己的乔恩斯基特的 C#深入,他讨论了3种方式来模拟一个'空'的值类型: 魔法值(例如最早可能日期时间取为'空') 引用类型的包装 布尔标志 要提及的是空类型使用第三种方法。究竟如何做到可空类型的发动机罩下工作吗? 解决方案 最后,他们都只是一个布尔标志的通用结构 - 除非有特殊拳击规则。因为结构是(默认)初始化为零,所述布尔默认为假(没有值): 公共结构可空&LT
..
我只拍自己的脚,想知道是否有实际的原因使这种情况成为可能。结果 反正,这个问题可以留为将来脚射手的便利。 假设我们有一个vb.net可空值: 暗淡作为我整型? 我们希望一个值分配给它,立足的条件,并使用三元运算符,因为它是如此整洁的东西: I = IF(条件(),没什么,42) 也就是说,如果一个条件是真正,使用的为空,否则价值。结果 在该点处拍摄时发生。无明显原因的VB编译器决定,
..
我试图序列化类的几个数据成员是可空的对象,下面是一个例子 [XmlAttribute(“AccountExpirationDate”)] 公众可空<&日期时间GT; AccountExpirationDate { {返回userPrincipal.AccountExpirationDate; } 集合{userPrincipal.AccountExpirationDate =价值
..
我很好奇,为什么隐式转换的失败... 诠释? someValue中= SomeCondition? ResultOfSomeCalc():空; 和为什么我要代替执行有明确的转换诠释? someValue中= SomeCondition? ResultofSomeCalc():(INT?)空; 在我看来,编译器包含所有的信息就需要做一个隐式转换的决定,不是吗? 解决方案 在C#3.0规
..
从我Db.Items 选择新VotedItem { ITEMID = i.ItemId, 点=(从Db.Votes v 其中,b.ItemId == v.ItemId 选择v.Points).SUM() } 我得到这个查询,但如果没有得票数与异常发现失败:的空值不能分配给类型System.Int32一个成员是一个非空的值类
..
私人字符串? typeOfContract { {返回(字符串?)的ViewState [“typeOfContract”]; } 集合{的ViewState [“typeOfContract”] =值; } } 后来在code我用这样的: typeOfContract =的Request.QueryString [“型”]; 我收到以下错误在typeOfContract行的声明,
..
我如何转换可空的DateTime DT2 以格式化字符串? DateTime的DT = DateTime.Now; Console.WriteLine(dt.ToString(“YYYY-MM-DD HH:MM:SS”)); //作品约会时间? DT2 = DateTime.Now; Console.WriteLine(dt2.ToString(“YYYY-MM-DD HH:MM:SS”));
..
我想使用条件运算符,但我正在逐渐挂在它认为结果应该是类型。 下面是我做作,显示我有问题的例子: 类节目 { 公共静态无效OutputDateTime(日期时间?DATETIME) { Console.WriteLine(日期时间); } 公共静态布尔IsDateTimeHappy(DateTime的日期时间) { 如果(
..
我有其中有一个可为空的ParentId字段类别的实体。当下面的方法被执行和类标识符是已空,但有类别的结果似乎空具有空的ParentId价值。 什么是这里的问题,我错过什么? 公开的IEnumerable< ICategory> GetSubCategories(长?的categoryId) { VAR子= this.Repository.Categories.Where(C
..
以下code将不能编译: 串富=“酒吧”; 对象o = foo的== NULL? DBNull.Value:富; 我得到:无法确定的条件前pression的错误1类型,因为有'System.DBNull'和'串'的之间不存在隐式转换 要解决这个问题,我必须做这样的事情:串富=“酒吧”; 对象o = foo的== NULL? DBNull.Value:(对象)富; 本投看起来毫无意义,因为
..
在C#中,说,你想拉一个值off PropertyC在这个例子和对象A,PropertyA和PropertyB都可以为空。 ObjectA.PropertyA.PropertyB.PropertyC 我如何能得到PropertyC安全与code量最少的? 现在我会检查: 如果(对象A = NULL&放大器;!&安培; ObjectA.PropertyA = NULL&放大器;!&安培;!O
..
我想泛型集合(列表)转换为数据表。我发现下面的code帮我做到这一点: //对不起缩进 公共类CollectionHelper { 私人CollectionHelper() { }//这是我一直在使用该方法 公共静态数据表中的ConvertTo< T>(IList的< T>清单) { 数据表表= CREATETABLE< T>(); 键入的E
..
什么是对,现在它可以存储null值类型的数据类型为空的应用操作改变。 解决方案 正如其他人所说,“?”仅仅是将其更改为可空&LT速记; T> 。这仅仅是另一个值类型与布尔标志说是否有真的有用的价值,或者它是否是该类型的空值。换句话说,可空< T> 看起来有点像这样: 公共结构可空< T> { 私人只读布尔hasValue的; 公共BOOL
..
有人能解释为什么这个工作在C#.NET 2.0: 可空<&日期时间GT;富; \t如果属实) 富= NULL; 其他 富=新的DateTime(0); ...但是这并不:可空<&日期时间GT;富; 富=真的吗?空:新的DateTime(0); 后面这种形式给我一个编译错误“有条件的前pression类型不能确定,因为之间不存在隐式转换'<&空GT;'和“System.
..
我只是修改的C#第4章中深度可空类型的交易,而我加入了部分有关使用“为”操作符,它可以让你写的: 对象o = ...; 诠释? X = O为int?; 如果(x.HasValue) { ... //使用x.Value这里 } 我认为这是很整洁,而且它可以提高对C#1当量性能,用“是”,接着铸造 - 毕竟,这样我们只需要问的动态类型检查一次,然后一简单的值检查。 这似乎不是这样的情况,
..