jjzjj

Nullable

全部标签

C# volatile 和 Nullable

根据文档:http://msdn.microsoft.com/en-us/library/x13ttww7.aspx:volatile关键字可以应用于引用类型。那么为什么在Nullable上使用是非法的?..引用类型!请注意,我实际上并不需要Nullable上的可变语义领域,我偶然遇到了这个错误,只是好奇。 最佳答案 Nullable不是引用类型。这是一个值类型:publicstructNullablewhereT:struct,new()注意struct部分。仅仅因为它有一个nullvalue不会使其成为引用类型...它是可以为n

c# - 对 Nullable<T> 约束的困惑

大家好。对不起,如果之前已经问过(徒劳地搜索)或者真的很简单,但我就是无法理解。MSDNdefinitionNullable类型的声明,它是按以下方式定义的:[SerializableAttribute]publicstructNullablewhereT:struct,new()所以问题很简单:这个定义怎么可能?或者这只是一个错字?每个值类型都有一个默认构造函数。事实上,当我尝试编译这样的东西时,编译器合理地说,同时应用两个约束是非法的,因为第二个约束隐式包含在第一个约束中。提前致谢。 最佳答案 我认为这只是文档中的一个错误。如果

c# - 与 IComparable 一起使用的可空泛型类型。可能吗?

我正在尝试创建一个简单的Clamp(以便我可以绑定(bind)任何可比较的值......主要用于数字类型,如int、double等)问题是如果我执行以下操作会出现错误,但是accordingtoMSDNIComparable的CompareTo应该能够处理空值。引述:“根据定义,任何对象比较大于null,并且两个null引用相互比较相等。”publicstaticTClamp(thisTvalue,Tmin,Tmax)whereT:IComparable{if(value.CompareTo(max)>0)returnmax;if(value.CompareTo(min)(0,9999

c# - 使用可为 null 的日期的 TimeSpan

当其中一个日期可以为空时,如何减去两个日期?publicstaticintNumberOfWeeksOnPlan(Useruser){DateTime?planStartDate=user.PlanStartDate;//user.PlanStartDateis:DateTime?TimeSpanweeksOnPlanSpan;if(planStartDate.HasValue)weeksOnPlanSpan=DateTime.Now.Subtract(planStartDate);//Thislineistheproblem.returnweeksOnPlanSpan==null?0

c# - WPF 文本框接受 INT 但不接受 NULLABLE INT?

模型publicint?SizeLength{get;set;}XAML一旦用户尝试退格键或删除此文本框中的值,将出现消息Value''cannotbeconverted。我可以知道它有什么问题吗? 最佳答案 使用:{BindingTargetNullValue=''} 关于c#-WPF文本框接受INT但不接受NULLABLEINT?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions

c# - 检查内部方法是否传递了一些可选参数

如何检查可选参数是否传递给方法?publicvoidExampleMethod(intrequired,stringoptionalstr="defaultstring",intoptionalint=10){if(optionalintwaspassed)return;}另一种方法是使用Nullable.HasValue(MSDNdefinitions,MSDNexamples):intdefault_optionalint=0;publicvoidExampleMethod(intrequired,int?optionalint,stringoptionalstr="default

c# - 在 C# 4 中使用 Nullable<T> 时遇到的问题

我刚开始写一个组件,我发现声明一些属性可为空可能很有用,而不是让它们求助于默认值。但是,我意识到我以前从未使用过non-nullable-type?语法或Nullable之前打字,所以可能会有一些陷阱很快就会跳出来咬我。所以……使用Nullable时最大的陷阱是什么?和速记?语法?我该如何解决它们?当我开始使用它们时,它们给我带来的最大优势/新可能性是什么? 最佳答案 一个常见的陷阱是尝试使用条件表达式分配给可为空的变量,如下所示:booluseDefault=true;intdefaultValue=50;int?y=useDef

c# - 从 Nullable 类型反射获取 PropertyType.Name

我想使用反射获取属性类型。这是我的代码varproperties=type.GetProperties();foreach(varpropertyInfoinproperties){model.ModelProperties.Add(newKeyValuePair(propertyInfo.PropertyType.Name,propertyInfo.Name));}这段代码propertyInfo.PropertyType.Name没问题,但是如果我的属性类型是Nullable我得到这个Nullable'1字符串,如果写FullName如果得到这个stirngSystem.Nulla

c# - Nullable<T> 混淆

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

c# - 返回类型 T 不能返回为 null? C#泛型

我有一个方法可以从用户提供的文件路径和对象类型中反序列化存储的对象。该方法工作正常,除非用户提供了无效的文件路径。在这种情况下,我希望我的方法返回null,但是当我尝试返回null时,出现编译错误。我尝试使用可空类型,但出现编译错误。相反,我对一个对象进行类型转换并返回它,但它会导致运行时错误。我想知道是否有人知道允许返回null的正确方法。代码如下:publicstaticTRestoreObj(stringdatafile){try{varfs=File.OpenRead(datafile);varbf=newBinaryFormatter();varobj=(T)bf.Deser