草庐IT

大有可为

全部标签

c# - 为什么在没有约束的泛型方法上将可为 null 的值类型与 null 进行比较会比较慢?

我遇到了一个非常有趣的情况,在泛型方法中比较可为null的类型和null比比较值类型或引用类型慢234倍。代码如下:staticboolIsNull(Tinstance){returninstance==null;}执行代码为:int?a=0;stringb="A";intc=0;varwatch=Stopwatch.StartNew();for(inti=0;i上面代码的输出是:00:00:00.187982700:00:00.000877900:00:00.0008532如您所见,将可为空的int与null进行比较比比较int或字符串慢234倍。如果我添加具有正确约束的第二个重载,

c# - MVC 映射到模型中可为空的 bool 值

使用包含字段的View模型:publicbool?IsDefault{get;set;}尝试在View中映射时出现错误:model.IsDefault)%>无法隐式转换类型“bool”?到'bool'。存在显式转换(是否缺少强制转换?)我试过转换和使用.Value都没有用。请注意,我想要的行为是提交表单时应将模型中的IsDefault设置为true或false。null的值仅表示尚未填充模型。 最佳答案 问题是你真的有三个可能的值;true、false和null,因此CheckBoxFor无法处理这三种状态(只能处理两种状态)。Br

c# - 在 EF6 中将字符串列设置为可为空

我有一个使用EF6创建的模型:publicpartialclassComment{[DisplayName("شناسهنظر")]publicintId{get;set;}[Required(ErrorMessage="متننظرراواردکنید")][DisplayName("متننظر")]publicstringCommentText{get;set;}[DisplayName("تعدادپسندیدن")]publiclongLikeCount{get;set;}[DisplayName("تعدادنپسندیدن")]publiclongDisLikeCount

c# - 返回可为空的字符串类型

所以我有这样的东西publicstring?SessionValue(stringkey){if(HttpContext.Current.Session[key].ToString()==null||HttpContext.Current.Session[key].ToString()=="")returnnull;returnHttpContext.Current.Session[key].ToString();}无法编译。如何返回可为null的字符串类型? 最佳答案 String已经是可以为null的类型。Nullable只能用

c# - 如何从大量可为空的 boolean 值中返回一个 boolean 值?

使用这段代码:privateboolAtLeastOnePlatypusChecked(){return((ckbx1.IsChecked)||(ckbx2.IsChecked)||(ckbx3.IsChecked)||(ckbx4.IsChecked));}...我在我的轨道上停止了Operator'||'cannotbeappliedtooperandsoftype'bool?'and'bool?那么我该如何实现呢? 最佳答案 您可以将|链接在一起,最后使用null合并运算符:return(ckbx1.IsChecked|cxb

c# - XmlCodeExporter 和可为 null 的类型

System.Xml.Serialization.XmlCodeExporter从XSD架构生成代码(以代码CodeDom形式)。但它有一些怪癖。例如一个可选元素:我希望这会生成一个类型为Nullable的相应代码成员,但它实际上创建了一个decimal类型的成员,然后是一个单独的SomethingSpecified应单独切换以指示空值的字段。这可能是因为该库是在引入可空类型之前创建的,但它导致代码非常不方便。是否可以调整此代码生成,或者是否有替代工具可以在这种情况下生成更好的代码?编辑:我知道我可以修改架构并添加nillable='true',但我不想更改架构来解决代码生成的限制。

c# - 将 null 分配给可为空的 int 时出错 - "The value ' null' 对属性无效”

我的View模型中有这个属性:[DisplayName("Region")]publicint?RegionId{get;set;}我将我的View模型传递给我的Controller,如果RegionId为null,它会在ModelState.IsValid处失败。如果我向它传递一个整数,它就可以正常工作。错误信息是:Thevalue'null'isnotvalidforRegion在检查ModelState.IsValid之前,我也试过调用它,但我得到了同样的错误:if(viewModel.RegionId==null)viewModel.RegionId=(int?)null;这里

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# - 如何从数据库中获取可为空的 DateTime

我的SQLServer数据库包含可为空的DateTime值。如何在我的C#应用程序中将它们转换为可为null的DateTime对象?这是我认为的样子,但事实并非如此:DateTime?dt=(DateTime?)sqldatareader[0]; 最佳答案 SQLnull与.NETnull不同;您必须与System.DBNull.Value进行比较:objectsqlDateTime=sqldatareader[0];DateTime?dt=(sqlDateTime==System.DBNull.Value)?(DateTime?)

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

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