Tag: c#可以为

如何从Type变量创建Nullable ?

我正在使用表达式,我需要一个接收某种类型的对象(目前未知)的方法。 像这样的东西: public static void Foobar(object Meh) { } 我需要的是使此方法返回Meh的Nullable版本,但类型T来自Meh.GetType() 。 因此返回将是Nullable ,其中MehType是Meh的类型。 有什么想法或建议吗? 谢谢 更新:我之所以需要这个是因为这个例外: 没有为类型’System.Nullable`1 [System.Int32]’和’System.Int32’定义二元运算符Equal。 return Expression.Equal(leftExpr, rightExpr); 其中leftExpr是System.Nullable1[[System.Int32和rightExpr是System.Int32 。

取两个可以为空的值

假设我有两个可以为空的整数: int? a = 10; int? b = 20; 我想取最大的非null值,这样如果两个值都为null,则结果为null。 我可以写一些啰嗦的东西,例如: int? max; if (a == null) { max = b; } else if (b == null) { max = a; } else { max = a > b ? a : b; } 对于我的喜好,这感觉有点过于笨重(并且可能容易出错)。 返回更大值的最简单方法是什么,这也是空值的可能性?

在C#中,`DateTime类型中的`?`是什么?`

我在使用System.DirectoryServices.AccountManagement时遇到了一些代码 public DateTime? LastLogon { get; } 是什么 ? 在DateTime之后。 我发现了一个参考? 运算符(C#参考) ,但它不是一回事。 (280Z28:这是使用Nullable Types的正确链接。)

转换小数? 加倍?

我想知道从一个可空类型转换为另一个“兼容”可空类型的最佳方式(在更安全和简洁的意义上)是什么。 具体来说,从十进制转换? 加倍? 可以使用: public double? ConvertToNullableDouble(decimal? source) { return source.HasValue ? Convert.ToDouble(source) : (double?) null; } 有没有更好的方法来做到这一点? 也许利用标准转换?

什么是使用Nullable.GetUnderlyingType,如果typeof(int?)是Int32?

为什么是typeof int? 一个Int32 int? x = 1; Console.WriteLine(x.GetType().Name); 如果可以,那么Nullable.GetUnderlyingType的用途是什么?

C#Nullable类型的编码实践

我从未在C#代码中使用过可空类型。 现在我决定通过在我的代码中引入可空类型来改变我的编码实践。 在应用程序编程的情况下,在从普通数据类型转换为可空数据类型的同时,应该对编码实践进行哪些主要更改? 应该注意哪些方面? 我应该经常注意哪些要点?

Nullable DateTime?

如何为可空日期时间创建setter和getter属性。 例如: private DateTime mTimeStamp; public DateTime TimeStamp { get { return mTimeStamp; } set { mTimeStamp = value; } } 可空属性是否支持setter和getter或者我是否将其声明为public? private DateTime? mTimeStamp; public DateTime TimeStamp { }

GetValueOrDefault如何工作?

我负责一个LINQ提供程序,它对C#代码执行一些运行时评估。 举个例子: int? thing = null; accessor.Product.Where(p => p.anInt == thing.GetValueOrDefault(-1)) 目前上面的代码不能与我的LINQ提供程序一起使用,因为thing为null。 虽然我已经使用C#很长时间了,但我不知道如何实现GetValueOrDefault,因此我应该如何解决这个问题。 所以我的问题是: GetValueOrDefault如何在调用它的实例为空的情况下工作? 为什么不抛出NullReferenceException ? 接下来的问题:我应该如何使用reflection来复制对GetValueOrDefault的调用,因为我需要处理空值。

为什么私有变量定义上有问号?

我正在阅读一篇关于MVVP模式的文章以及如何使用WPF实现它。 在源代码中有多行,我无法弄清楚它中的问号代表什么。 private DateTime? _value; 这是什么? 在定义中意味着什么? 我试图在VS的帮助下找到它,但失败了。