Tag: 可空

比较运算符如何使用null int?

我开始学习可空的types,并遇到以下行为。 当尝试可空int,我看比较运算符给我意想不到的结果。 例如,在我的代码下面,我得到的输出是“两者和1是相等的” 。 请注意,它也不打印“null”。 int? a = null; int? b = 1; if (a < b) Console.WriteLine("{0} is bigger than {1}", b, a); else if (a > b) Console.WriteLine("{0} is bigger than {1}", a, b); else Console.WriteLine("both {0} and {1} are equal", a, b); 我希望任何非负整数将大于空,我在这里失踪的东西?

在C#中检查Type实例是否为空值枚举

我如何检查types是否是C#中可为null的枚举类似 Type t = GetMyType(); bool isEnum = t.IsEnum; //Type member bool isNullableEnum = t.IsNullableEnum(); How to implement this extension method?

为什么我不能检查'DateTime'是否为'Nothing'?

在VB.NET中,有没有办法将DateTimevariables设置为“not set”? 为什么可以将DateTime设置为Nothing ,但不可能检查它是否为Nothing ? 例如: Dim d As DateTime = Nothing Dim boolNotSet As Boolean = d Is Nothing 第二个语句抛出这个错误: 'Is' operator does not accept operands of type 'Date'. Operands must be reference or nullable types.

转换可为空的bool? 布尔

你如何转换一个可空的bool? 在C# bool ? 我已经尝试过x.Value或x.HasValue …

条件expression式的types不能确定,因为“int”和“null”之间没有隐式转换

为什么不能编译? int? number = true ? 5 : null; 条件expression式的types不能确定,因为“int”和“null”之间没有隐式转换

做短路操作|| 和&&存在可空布尔? RuntimeBinder有时会这样认为

我阅读了条件逻辑运算符 ||上的C#语言规范 和&&也被称为短路逻辑运算符。 对我来说,这似乎不清楚,如果这些存在可空布尔,即操作数typesNullable<bool> (也写bool? ),所以我尝试了与非dynamictypes: bool a = true; bool? b = null; bool? xxxx = b || a; // compile-time error, || can't be applied to these types 这似乎解决了这个问题(我无法清楚地理解规范,但是假设Visual C#编译器的实现是正确的,现在我知道了)。 不过,我也想尝试dynamic绑定。 所以我尝试了这个: static class Program { static dynamic A { get { Console.WriteLine("'A' evaluated"); return true; } } static dynamic B { get […]

c#为什么不能为一个可为null的int赋值为null

解释为什么一个可空的int不能被赋值为null,例如 int? accom = (accomStr == "noval" ? null : Convert.ToInt32(accomStr)); 那个代码有什么问题?

可空的ToString()

我看到无处不在的build筑如: int? myVar = null; string test = myVar.HasValue ? myVar.Value.ToString() : string.Empty; 为什么不简单使用: string test = myVar.ToString(); 这不完全一样吗? 至lessReflector说: public override string ToString() { if (!this.HasValue) { return ""; } return this.value.ToString(); } 那么,这是正确的(更短的版本)还是我错过了什么?

types“string”必须是非空types,才能将其用作genericstypes或方法“System.Nullable <T>”中的参数T

为什么我得到错误“types'string'必须是一个不可为空的值types,以便将其用作通用types或方法'System.Nullable'中的参数'T'”? using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Diagnostics; using Universe; namespace Universe { public class clsdictionary { private string? m_Word = ""; private string? m_Meaning = ""; string? Word { get { return m_Word; } set { m_Word = value; } } string? Meaning { get { return m_Meaning; } set { […]

C#空string错误

private string? typeOfContract { get { return (string?)ViewState["typeOfContract"]; } set { ViewState["typeOfContract"] = value; } } 后来在代码中我使用它是这样的: typeOfContract = Request.QueryString["type"]; 在typeOfContract行的声明中typeOfContract以下错误: types'string'必须是非空值types,以便在通用types或方法'System.Nullable <T>'中将其用作参数'T' 有任何想法吗? 基本上,我想在执行操作之前确保QueryString存在"type" 。