草庐IT

null_object

全部标签

C# 将 int 类型的对象转换为可为 null 的枚举

我只需要能够将对象转换为可为空的枚举。对象可以是枚举、null或int。谢谢!publicenumMyEnum{A,B}voidPut(objectvalue){System.Nullableval=(System.Nullable)value;}Put(null);//worksPut(Myenum.B);//worksPut(1);//Invalidcastexception!! 最佳答案 怎么样:MyEnum?val=value==null?(MyEnum?)null:(MyEnum)value;盒装Actorint至MyEn

c# - 如果 null.Equals(null) 为什么我会得到 NullReferenceException

我有以下代码行:varselectedDomainID=lkuDomainType.EditValue.Equals(null)?string.Empty:lkuDomainType.EditValue;有时这会生成一个NullReferenceException。我不明白的是为什么。我的代码的全部意义不是检查null并且如果是则分配string.empty吗?当我checkinDEBUG时,它说明EditValue==null那么我错过了什么? 最佳答案 使用lkuDomainType.EditValue==null,否则您将尝试

c# - Mvc ViewBag - 无法将 null 转换为 'bool',因为它是不可为 null 的值类型

我想在生成某个View时在Controller中将bool设置为true,然后相应地更改View的标题。这应该非常简单,但我得到的是:CannotperformruntimebindingonanullreferenceExceptionDetails:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:Cannotperformruntimebindingonanullreference我所做的一切都在Controller中:[AllowAnonymous]publicActionResultRegister(){ViewBag

c# - 如何使用 DataTable.Select() 选择 Null/空值?

我从db填充的数据表在某些单元格中有空值。结果数据库SP返回的结果为Null,但在DataTable中这些值显示为“”或空单元格。请指导我如何使用Select()来选择这些dbnull/空行。谢谢 最佳答案 检查null的正确方法是检查它:DataRow[]myResultSet=myDataTable.Select("[COLUMNNAME]isnull"); 关于c#-如何使用DataTable.Select()选择Null/空值?,我们在StackOverflow上找到一个类似的问

c# - 如何在一行 C# 3.0 中将 object[] 转换为 List<string>?

好吧,我放弃了,你如何在一行中做到这一点?publicobjectConvert(object[]values,TypetargetType,objectparameter,System.Globalization.CultureInfoculture){//Listfields=values.ToList();//Listfields=valuesasList;//Listfields=(List)values;Listfields=newList();foreach(objectvalueinvalues){fields.Add(value.ToString());}//proce

C#:参数验证:null/空字符串

我不知道有多少次我不得不编写代码来验证字符串参数:publicRoomName(stringname){if(string.IsNullOrEmpty(name)){thrownewArgumentException("Cannotbeempty","name");}}有没有办法避免这种情况?是否有一些属性或契约设计机制可以避免这种情况?有没有办法说:publicRoomName(NotNullOrEmptyStringname){无需实际创建该类型? 最佳答案 您可以通过带有属性的代码注入(inject)来做到这一点。另一种节省一

c# - 为什么 Object.GetType() 不是虚拟的?

取自MSDN的代码示例publicclassTest{publicstaticvoidMain(){MyBaseClassmyBase=newMyBaseClass();MyDerivedClassmyDerived=newMyDerivedClass();objecto=myDerived;MyBaseClassb=myDerived;Console.WriteLine("mybase:Typeis{0}",myBase.GetType());Console.WriteLine("myDerived:Typeis{0}",myDerived.GetType());Console.Wr

c# - 为什么我可以将不可为 null 的类型与 null 进行比较?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:C#okaywithcomparingvaluetypestonull如果我尝试将null分配给C#中的不可空类型:System.DateTimetime=null;我会得到一个编译时错误:errorCS0037:Cannotconvertnullto'System.DateTime'becauseitisanon-nullablevaluetype这是有道理的。但是如果将相同类型与null进行比较:System.DateTimetime=obtainFromSomewhere();if(time==null

c# - 重载 == (当然还有 != )运算符,我可以绕过 == 来判断对象是否为 null

当我尝试在C#中重载运算符==和!=,并按照建议覆盖Equal时,我发现我无法区分普通对象和null。例如,我定义了一个Complex类。publicstaticbooloperator==(Complexlhs,Complexrhs){returnlhs.Equals(rhs);}publicstaticbooloperator!=(Complexlhs,Complexrhs){return!lhs.Equals(rhs);}publicoverrideboolEquals(objectobj){if(objisComplex){return(((Complex)obj).Real=

c# - 为什么 var 在 "foreach (var row in table.Rows)"中评估为 System.Object ?

当我输入此foreach语句时...foreach(varrowintable.Rows)...var的工具提示显示classSystem.Object我很困惑为什么它不是classSystem.Data.DataRow。(如果您想知道,是的,我的代码文件顶部有usingSystem.Data。)如果我显式声明类型,如...foreach(DataRowrowintable.Rows)...它工作正常,没有错误。如果我这样做...varnumbers=newint[]{1,2,3};foreach(varnumberinnumbers)...var的计算结果为structSystem.