草庐IT

大有可为

全部标签

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

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

c# - LINQ .SUM() 和可为空的数据库值

我知道为什么会这样,但有人能指出正确的语法方向吗?目前我有:varexpense=fromeindb.I_ITEMwheree.ExpenseId==expenseIdselecte;returnexpense.Sum(x=>x.Mileage??0);我的问题是x.Mileage的类型是“double?”并且在数据库中有空值。我得到的错误是:ExceptionDetails:System.InvalidOperationException:Thecasttovaluetype'Double'failedbecausethematerializedvalueisnull.Eithert

c# - 可为空的日期时间?

如何为可为null的日期时间创建setter和getter属性。例如:privateDateTimemTimeStamp;publicDateTimeTimeStamp{get{returnmTimeStamp;}set{mTimeStamp=value;}}可空属性是否支持setter和getter或是否必须将其声明为公开?privateDateTime?mTimeStamp;publicDateTimeTimeStamp{} 最佳答案 您可以改为这样做:publicDateTime?TimeStamp{get;set;}如果您在

c# - 将可为空的 bool 转换为 bool

我有一个对象AlternateName.IsMaidenName我想将它转换到一个复选框-IsMaidenName它不会让我强制转换,因为它说无法将可为null的源类型转换为目标类型bool。我在我们的应用程序的其他地方遇到过这个问题,但我想把它扔掉,以便更好地处理这些问题。IsMaidenNameChecked=AlternateName.IsMaidenName; 最佳答案 您不能将可为空的bool值转换为bool值是合乎逻辑的,因为当可为空值包含null时,bool值应该具有什么值?我会做的,是这样的:IsMaidenName

c# - 如何使用 SQL Server 将可为空的 guid 声明为 C# CLR 存储过程的可选参数

我正在编写一个部署在SQLServer2008R2(所以.Net3.5)上的C#存储过程,并希望将一个可选参数声明为可为null的guid。这是我首先尝试的:[Microsoft.SqlServer.Server.SqlProcedure]publicstaticvoidspCalcPerc(SqlGuidpID,SqlGuidsID=DBNull.Value)由于编译时错误而失败:Defaultparametervaluefor'sID'mustbeacompile-timeconstant这是因为DBNull.Value不是常量,这很痛苦。所以我尝试将声明更改为:[Microsof

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# - 为什么可为空的 KeyValuePair<,> 没有键属性?

我有以下内容:KeyValuePair?myKVP;//codethatmayconditionallydosomethingwithitstringkeyString=myKVP.Key;//throws'System.Nullable>'//doesnotcontainadefinitionfor'Key'我确定这是有原因的,因为我可以看到该类型可以为空。是因为当null可能导致坏事发生时我试图访问key吗? 最佳答案 试试这个:myKVP.Value.Key;这是System.Nullable的精简版:publicstruct

c# - IsPrimitive 不包括可为空的原始值

我想检查一个类型是否是原始类型并使用了以下代码:returntype.IsValueType&&type.IsPrimitive;只要原语不可为空,这就可以正常工作。例如int?,如何检查类型是否为可空原始类型?(仅供引用:int上的type.IsPrimitive==false?) 最佳答案 来自MSDN:TheprimitivetypesareBoolean,Byte,SByte,Int16,UInt16,Int32,UInt32,Int64,UInt64,IntPtr,UIntPtr,Char,Double,andSingle

c# - 比较可为 null 的日期时间对象

我有两个可为null的日期时间对象,我想比较两者。最好的方法是什么?我已经试过了:DateTime.Compare(birthDate,hireDate);这给出了一个错误,也许它期望类型为System.DateTime的日期并且我有Nullabledatetimes。我也试过:birthDate>hiredate...但结果并不如预期...有什么建议吗? 最佳答案 比较两个Nullable对象使用Nullable.Compare喜欢:boolresult=Nullable.Compare(birthDate,hireDate)>0

c# - WCF 服务协定是否可以具有可为 null 的输入参数?

我有一个这样定义的契约(Contract):[OperationContract][WebGet(UriTemplate="/GetX?myStr={myStr}&myX={myX}",BodyStyle=WebMessageBodyStyle.Wrapped)]stringGetX(stringmyStr,int?myX);我得到一个异常(exception):[InvalidOperationException:契约(Contract)“IMyGet”中的操作“GetX”有一个名为“myX”的查询变量,类型为“System.Nullable1[System.Int32]”,但类型为