草庐IT

可空性

全部标签

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# - 将泛型限制为可空类型

我正在寻找这样的示例用法:FoostringFoo=newFoo("Theansweris");FoointFoo=newFoo(42);//TheValueofintFoo&stringFooarestronglytypedstringFoo.Nullify();intFoo.Nullify();if(stringFoo==null&&intFoo==null)MessageBox.Show("Botharenull);给定这个类Foo,我可以将T自动包装成一个可为null的对象:publicclassFoo1whereT:struct{privateT?_value;publicF

c# - 如何将字符串转换为运行时确定的可空类型?

我有下面的代码,我需要将一个字符串转换为同样从String指定的类型:Typet=Type.GetType("System.Nullable`1[[System.DateTime,mscorlib,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089]]");objectd=Convert.ChangeType("2012-02-2310:00:00",t);我收到以下错误消息:Invalidcastfrom'System.String'to'System.Nullable`1[[System.DateTime,

php - PHPDoc 中可选的可空参数

想象一下,我们有一个带有可选可空参数(PHP7.0)的方法,如本例所示:/***@paramType1$foo*@paramType2$bar*/functionmyFunction(Type1$foo,Type2$bar=null){}不幸的是,从PHPDoc文档中并不清楚,将第二个参数标记为可选和可为空的正确方法是什么。通常我使用“Type2|null”表示法:/***@paramType1$foo*@paramType2|null$bar*/functionmyFunction(Type1$foo,Type2$bar=null){}实际上这是我更喜欢的方式,因为它明确描述了所有可

ios - Objective-C:在违反可空性注释时强制执行编译错误

背景我们一直在开发公共(public)动态iOS/macOS框架。该框架是用Objective-C编写的,但它与Swift完全兼容。最近,我们更改了一个公共(public)API方法的可空性注释:来自-(void)setServer:(nullableABCLocation*)location;到-(void)setServer:(nonnullABCLocation*)location;,因此开发人员需要创建[ABCLocationdefault]实例并将其传递给新的API。问题现在,我们关心的是,如何强制/通知开发人员围绕我们的新API更改他们现有的代码?将API与Swift一起使

android - 当给定可空 Int 时,具有大范围的 Kotlin when 语句卡住

我正在使用when语句来检查变量是否在多个相当大的范围内。为简单起见,我的代码如下所示:vallowRange=Int.MIN_VALUE..0valmediumRange=1..999_999//...valvalToCheck=1_000_000when(valToCheck){inlowRange->{doSomething()}inmediumRange->{doSomethingElse()}//...else->{handleTooHighOrNull()}}这很好用;但是,当我使valToCheck可为空时:vallowRange=Int.MIN_VALUE..0valm

c# - 如何通过 COM 公开可空类型

我已经为这个问题苦苦挣扎了一天半,希望有人能帮助我。假设我在C#中有这样的结构:publicstructPart{publicdouble?x;//orSystem.Nullablex,doesn'treallymatter}(这些结构表示数据库表,从Linq转换为由SQLMetal创建的SQL代码)我需要能够向COM公开这些包含可空类型的结构,以便它们可以在另一个应用程序(C++)中使用。但我无法弄清楚,对于我的生活,如何做到这一点。我想我可以创建类来封装可为null的类型:publicclassNullableDouble{privatedouble_Value;//classme

php - 为什么我应该使用/不使用可空字段 Laravel - MySQL

我的mySQL数据库中有一个Address表,其中包含一些字段。在我的表单上,我要求用户为这些字段输入值。但是street字段不是必需的。因此,当我提交表单时,我的ColumnStreet在我的数据库中是空的。这工作正常,并且在不将列设置为接受NULL的情况下不会出现错误。所以我的问题是:将街道列设置为可为空有什么好处?不可以为nullable的示例迁移(Laravel):$table->string('street');可空迁移示例$table->string('street')->nullable();两者都很好。 最佳答案 在

mysql - 在对数据库中的可空列进行比较之前是否需要进行 NULL 值检查?

我想知道在数据库中进行比较之前执行空值检查是否有必要或一个好的做法,尤其是在我正在处理这些数据库的MySQL和MSSQL上。如果执行空检查,是否会影响性能?简而言之,就生成的结果和性能而言,以下MySQLSQL中的版本1和版本2有何不同?DROPTABLEIFEXISTSt1;CREATETABLEt1(idINTAUTO_INCREMENTPRIMARYKEY,intvalINTNULLDEFAULTNULL,strvalVARCHAR(32)NULLDEFAULTNULL,KEYidx_intval(intval),KEYidx_strval(strval));INSERTINTO