jjzjj

nullability

全部标签

c# - Nullable<T> 混淆

为什么禁止以下内容?Nullable>鉴于structMyNullable{}MyNullable>不是 最佳答案 这是因为结构约束实际上意味着'notnullable'因为Nullable,尽管是一个结构,是可以为空的(可以接受值null)Nullable不是外部Nullable的有效类型参数。这在theconstraintsdocumentation中有明确说明whereT:structThetypeargumentmustbeavaluetype.AnyvaluetypeexceptNullablecanbespecified

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# - DisplayFormat 不适用于 Nullable<DateTime>

我试图在MVC中格式化一些DateTimes,但DisplayFormat没有应用于Nullable对象,我不知道为什么。它在CreatedDateTime上运行良好,但在LastModifiedDateTime上运行良好[DisplayFormat(ApplyFormatInEditMode=true,DataFormatString="{0:MM/dd/yyhh:mmtt}")]publicDateTimeCreatedDateTime{get;set;}[DisplayFormat(ApplyFormatInEditMode=true,DataFormatString="{0:M

c# - 在 Linq-To-Sql 中避免 "Nullable object must have a value."

我有一个这样的方法查询:publicIListGetBusinessObject(Guid?filterId){using(vardb=newL2SDataContext()){varresult=fromboindb.BusinessObjectswhere(filterId.HasValue)?bo.Filter==filterId.value:trueorderbybo.NameselectSqlModelConverters.ConvertBusinessObject(bo);returnresult.ToList();}}在运行时,这会抛出一个System.InvalidOp

c# - 在单个 C# 泛型方法中返回 nullable 和 null?

是否可以在C#泛型方法中返回对象类型或Nullable类型?例如,如果我有一个List的安全索引访问器我想返回一个值,以后可以用==null检查或.HasValue().我目前有以下两种方法:staticT?SafeGet(Listlist,intindex)whereT:struct{if(list==null||index=list.Count){returnnull;}returnlist[index];}staticTSafeGetObj(Listlist,intindex)whereT:class{if(list==null||index=list.Count){return

c# - 类型 'MyObject' 必须是不可为 null 的值类型才能将其用作泛型类型或方法 'T' 中的参数 'Nullable<T>'

我正在使用.netframework4.5我得到以下错误ErrorCS0453Thetype'MyObject'mustbeanon-nullablevaluetypeinordertouseitasparameter'T'inthegenerictypeormethod'Nullable'publicasyncTask>MyMethod(stringmyParamter){}我也试过publicasyncTaskMyMethod(stringmyParamter){}如果我将事物设置为可为空,那么为什么我会在方法名称下方看到一条红线并显示此错误消息计算器answer很简单,使返回类型

c# - 为什么我不能写 Nullable<Nullable<int>>?

Nullable的定义是:[SerializableAttribute]publicstructNullablewhereT:struct,new()约束whereT:struct暗示T只能是值类型。所以我很清楚我不能写:Nullablea;//error.makessensetome因为string是引用类型,不是值类型。但是我真的不明白为什么我不能写Nullable>b;//error.butwhy?为什么不允许?毕竟,Nullable是一个值类型,因此,它可以是Nullablle的类型参数.当我在ideone上编译它时,它给出了这个错误(ideone):errorCS0453:T

c# - MVC 3 不绑定(bind) nullable long

我创建了一个测试网站来调试我遇到的问题,看来我传递的JSON数据有误,或者MVC无法绑定(bind)可为null的long。当然,我使用的是最新的MVC3版本。publicclassGetDataModel{publicstringTestString{get;set;}publiclong?TestLong{get;set;}publicint?TestInt{get;set;}}[HttpPost]publicActionResultGetData(GetDataModelmodel){//Dostuff}我正在发布一个具有正确JSON内容类型的JSON字符串:{"TestStri

c# - 类型 'T' 必须是不可为 null 的值类型才能将其用作泛型类型或方法 'T' 中的参数 'System.Nullable<T>'

为什么我在以下代码中会收到此错误?voidMain(){int?a=1;int?b=AddOne(1);a.Dump();}staticNullableAddOne(Nullablenullable){returnApplyFunction(nullable,(intx)=>x+1);}staticNullableApplyFunction(Nullablenullable,Funcfunction){if(nullable.HasValue){Tunwrapped=nullable.Value;TResultresult=function(unwrapped);returnnewNu

c# - 通过反射设置属性 Nullable<>

我尝试动态设置一个Nullable属性。我得到我的属性(property)ex:PropertyInfoproperty=class.GetProperty("PropertyName");//MypropertyisNullableatthistimeSothetypecouldbeastringorint我想像这样通过反射来设置我的属性property.SetValue(class,"1256",null);当我的属性是NullableGeneric时它不起作用。所以我试图找到一种方法来设置我的属性。了解我执行的可空属性的类型Nullable.GetUnderlyingType(p