jjzjj

HasValue

全部标签

javascript - 拥有一个返回另一个函数的反函数的函数值得付出努力吗?

我最近在我们的内部javascript库中添加了一个HasValue函数:functionHasValue(item){return(item!==undefined&&item!==null);}在与同事的一次谈话中,我们想到了添加另一个函数的想法,该函数基本上只是逆函数:可能是HasNoValue或IsNothing如果我们最终这样做,我们将:functionHasNoValue(item){return(item===undefined||item===null);}functionHasValue(item){return!HasNoValue(item);}但是,我们不确定同

c# - Code Contracts 是否未能发现 Nullable<T>.HasValue 和 null 之间的明显关系?

我正在尝试将代码契约应用到我的代码中,但我遇到了一个令人费解的问题。这段代码不符合契约(Contract),但除非我真的很厚,否则我希望它能够轻松分析id在返回时必须有一个值if(id==null)thrownewInvalidOperationException(string.Format("{0}'{1}'doesnotyethaveanidentity",typeof(T).Name,entity));returnid.Value; 最佳答案 我已经弄清了这个行为的真相,这不是CodeContract的错。我在ILSpy中打开

c# - C# 是 int 吗?当 hasvalue = true 时,bool 总是被装箱吗?

ThisMSDNreference似乎表明当int?(或任何Nullable)有一个值,它总是装箱(因此数据存储效率低得多,内存方面比int)。是这样吗? 最佳答案 该页面指的是当您装箱Nullable时结构,而不是结构本身内部的值。在您尝试对可空类型本身进行装箱之前,存储可空类型不涉及装箱:int?a=42;//noboxingint?n=null;//noboxingobjectnObj=n;//noboxingobjectaObj=a;//onlynowwillboxingoccur此行为与装箱常规值类型(处理null情况除外

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

javascript 函数 inArray

我需要一个javascript函数,它可以接受一个字符串和一个数组,如果该字符串在数组中则返回true..functioninArray(str,arr){...}警告:它不能使用任何javascript框架。 最佳答案 你可以做一个数组原型(prototype)函数ala:Array.prototype.hasValue=function(value){vari;for(i=0;i请注意使用“===”而不是“==”,如果您需要不太具体的匹配,您可以更改它...否则[3].hasValue('3')将返回false。

c# - 为什么 Nullable<T> HasValue 属性不会在 Null 上抛出 NullReferenceException?

考虑以下代码:DateTime?ndate=null;Console.WriteLine(ndate.HasValue);我本以为会出现NullReferenceException,但HasValue确实会返回false。但是,由于ndate为空,属性调用如何成功,因为没有对象可以调用属性HasValue呢? 最佳答案 从技术上讲,“ndate”不是null-它是一种值类型,其值指定为null。当你写DateTime?,这只是Nullable的简写,这是一个结构。从技术上讲,这不可能为null,因为它不是引用类型。

c# - 为什么 Nullable<T> HasValue 属性不会在 Null 上抛出 NullReferenceException?

考虑以下代码:DateTime?ndate=null;Console.WriteLine(ndate.HasValue);我本以为会出现NullReferenceException,但HasValue确实会返回false。但是,由于ndate为空,属性调用如何成功,因为没有对象可以调用属性HasValue呢? 最佳答案 从技术上讲,“ndate”不是null-它是一种值类型,其值指定为null。当你写DateTime?,这只是Nullable的简写,这是一个结构。从技术上讲,这不可能为null,因为它不是引用类型。

c# - myNullableLong.HasValue 和 myNullableLong != null 之间有什么区别吗?

例如,当我有一个可为空的long时,之间有什么区别吗?myNullableLong.HasValue和myNullableLong!=null...还是只是“语法糖”? 最佳答案 这只是语法糖。它们的行为方式完全相同-无论如何,无效性测试实际上被编译成对HasValue的调用。示例:publicclassTest{staticvoidMain(){int?x=0;booly=x.HasValue;boolz=x!=null;}}IL:.methodprivatehidebysigstaticvoidMain()cilmanaged{

c# - myNullableLong.HasValue 和 myNullableLong != null 之间有什么区别吗?

例如,当我有一个可为空的long时,之间有什么区别吗?myNullableLong.HasValue和myNullableLong!=null...还是只是“语法糖”? 最佳答案 这只是语法糖。它们的行为方式完全相同-无论如何,无效性测试实际上被编译成对HasValue的调用。示例:publicclassTest{staticvoidMain(){int?x=0;booly=x.HasValue;boolz=x!=null;}}IL:.methodprivatehidebysigstaticvoidMain()cilmanaged{

Java 互操作 : Apply @JvmName to getters of properties in interface or abstract class

通常我们可以在kotlin中编写如下代码:valhasValue:Boolean@JvmName("hasValue")get()=true这将为Javainterop生成方法hasValue()而不是getHasValue()。但是,在界面中,这给了我一个编译错误:valhasValue:Boolean@JvmName("hasValue")get抽象类中的以下声明也是如此:abstractvalhasValue:Boolean@JvmName("hasValue")get所以这是我的问题:如何告诉kotlin编译器使用hasValue()而不是getHasValue()来获取a中属
12