草庐IT

nullable

全部标签

c# - Nullable 可以用作 C# 中的仿函数吗?

考虑以下C#代码。publicintFoo(inta){//...}//insomeothermethodint?x=0;x=Foo(x);最后一行会返回一个编译错误cannotconvertfrom'int?'到'int'这很公平。但是,例如在Haskell中有Maybe,它对应于C#中的Nullable。因为Maybe是一个Functor,所以我可以使用fmap将Foo应用于x>。C#有没有类似的机制? 最佳答案 我们可以自己实现这样的功能:publicstaticclassFuncUtils{publicstaticNulla

c# - 如何更改 C# 中的 default(T) 返回值?

我想更改default(T)对某些类的行为方式。因此,我不想为我的引用类型返回null,而是返回一个null对象。有点像kids.Clear();varkid=kids.Where(k=>k.Age有人知道这是否可能吗? 最佳答案 Anyoneknowifthisisatallpossible?根本不可能。但也许您想使用DefaultIfEmpty相反:kids.Clear();varkid=kids.Where(k=>k.Age 关于c#-如何更改C#中的default(T)返回值?,

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# 可空数组

我有一个搜索功能,但我希望LocationID是一个整数数组,而不仅仅是一个整数。我不确定该怎么做,因为我希望它也可以为空。我看过int?[]但我必须检查每个条目的HasValue。有没有更好的办法?这是我目前拥有的:publicActionResultSearch(string?SearchString,int?LocationId,DateTime?StartDate,DateTime?EndDate) 最佳答案 数组始终是引用类型,string也是如此。-所以它们已经可以为空。你只需要使用(并且只有可以使用)Nullable其

c# - TryParse 为可空类型

我想尝试将string解析为DateTime?,如果失败,则将值设置为null。我能想到的唯一方法如下,但它看起来不是很整洁。DateTimetemp;DateTime?whatIActuallyWant=null;if(DateTime.TryParse(txtDate.Text,outtemp))whatIActuallyWant=temp;这是唯一的方法吗? 最佳答案 这个怎么样:DateTime?whatIActuallyWant=DateTime.TryParse(txtDate.Text,outtemp)?(DateTi

c# - 为什么不能将可空值声明为 const?

[TestClass]publicclassMsProjectIntegration{constint?projectID=null;//Thetype'int?'cannotbedeclaredconst//...}为什么我不能有一个constint??编辑:我想要一个可为空的int作为const的原因是因为我只是用它来从数据库加载一些示例数据。如果它为空,我将在运行时初始化示例数据。这是一个非常快速的测试项目,显然我可以使用0或-1,但int?感觉就像适合我想做的事情的正确数据结构。只读似乎是要走的路 最佳答案 这不仅仅是可空值

c# - 将 HasValue 重写为 ??运营商

重写以下代码是否安全:boolb=foo.bar.HasValue?foo.bar.Value:false;到boolb=foo.bar.Value??false;bar是可空类型bool? 最佳答案 最简单的解决方法是boolb=foo.bar.GetValueOrDefault();这实际上也比.Value便宜,因为它省略了有值检查。它将默认为default(T),这里确实是false(它只是返回底层T字段的值,没有任何检查完全没有)。如果您需要与default(T)不同的默认值,那么:varvalue=yourNullable

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

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

c# - DataMember IsRequired 属性与 Nullable 类型的组合是否矛盾?

我今天在WCF契约(Contract)中遇到了这个:[DataMember(IsRequired=true)]publicDateTime?LastModified{get;set;}IsRequired=True和可为空的DateTime的结果是什么?它们似乎相互矛盾。 最佳答案 如果您想用null初始化它并让用户设置有效日期,这是有意义的。因此在提交之前它可以验证用户输入。这里有一个类似的矛盾可能会回答你的问题。InteractionwithIsRequiredTheDataMemberAttributeattributehas

c# - 我可以在一行中从 DBNull 转换为 Nullable Bool 吗?

我有一个数据库查询将返回NULL或bool(位)值。我希望将此值存储在类型为Nullable的变量中在C#中。我似乎找不到可以接受的显式强制转换和转换的组合,以简单的方式执行此操作而不抛出异常。可以在一行可读的代码中完成吗?编辑:要求的代码privateNullableIsRestricted;...//dataaccessIsRestricted=(bool?)DataBinder.GetPropertyValue(dataObj,"IsRestricted");或许IsRestricted=(bool?)(bool)DataBinder.GetPropertyValue(dataO