草庐IT

nullable

全部标签

c# - "bool"和 "bool?"有什么区别?

我对变量使用“bool”类型,就像我在C++中习惯的那样,并且我尝试将我希望为boolean值的函数或属性的值放入我的变量中。但是我经常遇到结果类型是“bool?”的情况。而不是“bool”,隐式转换失败。两者有什么区别,分别在什么时候使用?另外,我应该使用“bool”吗?作为我的变量的类型?这是最佳做法吗? 最佳答案 ?类型后的符号只是Nullabletype的快捷方式,bool?相当于Nullable.bool是valuetype,这意味着它不能是null,因此Nullable类型基本上允许您包装值类型,并且能够分配null给他

c# - 具有 Nullable<value> 类型的条件运算符赋值?

EmployeeNumber=string.IsNullOrEmpty(employeeNumberTextBox.Text)?null:Convert.ToInt32(employeeNumberTextBox.Text),我经常发现自己想做这样的事情(EmployeeNumber是一个Nullable,因为它是LINQ-to-SQLdbml对象的一个​​属性,其中列允许NULL值)。不幸的是,编译器认为Thereisnoimplicitconversionbetween'null'and'int'即使这两种类型在对它们自己的可空int的赋值操作中都是有效的。据我所知,使用null合

c# - 具有 Nullable<value> 类型的条件运算符赋值?

EmployeeNumber=string.IsNullOrEmpty(employeeNumberTextBox.Text)?null:Convert.ToInt32(employeeNumberTextBox.Text),我经常发现自己想做这样的事情(EmployeeNumber是一个Nullable,因为它是LINQ-to-SQLdbml对象的一个​​属性,其中列允许NULL值)。不幸的是,编译器认为Thereisnoimplicitconversionbetween'null'and'int'即使这两种类型在对它们自己的可空int的赋值操作中都是有效的。据我所知,使用null合

c# - 从 int 提升/可空转换的严重错误,允许从 decimal 转换

我认为这个问题会让我在StackOverflow上一炮走红。假设您有以下类型://representsadecimalnumberwithatmosttwodecimalplacesaftertheperiodstructNumberFixedPoint2{decimalnumber;//anintegerhasnofractionalpart;canconverttothistypepublicstaticimplicitoperatorNumberFixedPoint2(intinteger){returnnewNumberFixedPoint2{number=integer};}

c# - 从 int 提升/可空转换的严重错误,允许从 decimal 转换

我认为这个问题会让我在StackOverflow上一炮走红。假设您有以下类型://representsadecimalnumberwithatmosttwodecimalplacesaftertheperiodstructNumberFixedPoint2{decimalnumber;//anintegerhasnofractionalpart;canconverttothistypepublicstaticimplicitoperatorNumberFixedPoint2(intinteger){returnnewNumberFixedPoint2{number=integer};}

C# 枚举 : Nullable or 'Unknown' Value?

如果我有一个带有enum成员的类,并且我希望能够表示未定义该成员的情况,哪个更好?a)使用可空类型在类中将成员声明为可空。例如:publicSomeEnum?myEnum;b)向枚举添加默认的“未知”值。例如:publicenumSomeEnum{Unknown,SomeValueA,SomeValueB,SomeValueC,}我真的看不出任何主要的优点/缺点;但也许一个比另一个更可取? 最佳答案 一定要使用可空值类型——这就是它们的用途。它明确说明了您的意图。这也意味着您可以使用Enum.IsDefined(或者来自Uncons

C# 枚举 : Nullable or 'Unknown' Value?

如果我有一个带有enum成员的类,并且我希望能够表示未定义该成员的情况,哪个更好?a)使用可空类型在类中将成员声明为可空。例如:publicSomeEnum?myEnum;b)向枚举添加默认的“未知”值。例如:publicenumSomeEnum{Unknown,SomeValueA,SomeValueB,SomeValueC,}我真的看不出任何主要的优点/缺点;但也许一个比另一个更可取? 最佳答案 一定要使用可空值类型——这就是它们的用途。它明确说明了您的意图。这也意味着您可以使用Enum.IsDefined(或者来自Uncons

c# - "DateTime?"在 C# 中是什么意思?

我正在阅读一本.NET书籍,其中一个代码示例中有一个包含此字段的类定义:privateDateTime?startdateDateTime?是什么意思? 最佳答案 自DateTime是struct,不是class,你会得到一个DateTime对象,而不是引用,当您声明该类型的字段或变量时。并且,以与int相同的方式不能是null,所以这个DateTime对象永远不能是null,因为它不是引用。添加问号会将其变成nullabletype,这意味着要么它是DateTime对象,或它是null.DateTime?是Nullable的语法糖

c# - "DateTime?"在 C# 中是什么意思?

我正在阅读一本.NET书籍,其中一个代码示例中有一个包含此字段的类定义:privateDateTime?startdateDateTime?是什么意思? 最佳答案 自DateTime是struct,不是class,你会得到一个DateTime对象,而不是引用,当您声明该类型的字段或变量时。并且,以与int相同的方式不能是null,所以这个DateTime对象永远不能是null,因为它不是引用。添加问号会将其变成nullabletype,这意味着要么它是DateTime对象,或它是null.DateTime?是Nullable的语法糖

c# - 从 'System.Int32' 到 'System.Nullable` 1[[System.Int32, mscorlib]] 的转换无效

Typet=typeof(int?);//willgetthisdynamicallyobjectval=5;//willgetthisdynamicallyobjectnVal=Convert.ChangeType(val,t);//gettingexceptionhere我在上面的代码中得到了InvalidCastException。对于上面我可以简单地写int?nVal=val,但上面的代码是动态执行的。我得到一个值(不可为null的类型,如int、float等)包裹在一个对象(这里是val)中,我必须通过将它转换为另一种类型(可以或不能)来将它保存到另一个对象是它的可空版本)。