null-coalescing-operator

    1热度

    4回答

    试图弄清楚如何让null合并运算符在foreach循环中工作。 我在检查一下字符串以什么结尾,并基于它,将它路由到某个方法。基本上我想说的是.... foreach (String s in strList) { if s.EndsWith("d") ?? Method1(s) ?? Method2(s) ?? "Unknown file type"; } 在试图做到这一点,当然

    13热度

    5回答

    我开始非常喜欢C#的??运算符。我已经习惯了这样一个事实,那就是在某些语言中有些方便的地方,它很可能也在Perl中。 但是,我找不到?相当于Perl。有没有?

    5热度

    4回答

    下面是一些linqpad测试代码。当它运行错误时,因为“item”的第二个实例具有与空列表相反的子列表的空列表。 我想治疗以完全相同的方式这两种情况下(null或空单),但我想知道是否有比只是把名单上的空校验和初始化列表为空时,有一个空一个更清洁的方式。 换句话说,我可以这样做: from si in (i.subitems == null ? new List<item>() : i.subit

    7热度

    2回答

    看看下面的代码我试图在构造函数中写: private Predicate<string> _isValid; //... Predicate<string> isValid = //...; this._isValid = isValid ?? s => true; 的代码不编译 - 只是“无效的表达术语” S和SO之一。 相反,它编译,我可以只使用它: this._isValid

    27热度

    8回答

    我需要添加许多类型为nullable int的变量。我使用了空合并运算符来将它缩减为每行一个变量,但我有一种感觉,有一种更简洁的方式来完成此操作,例如,我不能以某种方式将这些陈述链接在一起,我之前在其他代码中看到过。 using System; namespace TestNullInts { class Program { static void Main(

    20热度

    2回答

    最近我有一个奇怪的错误,我在连接字符串与int?,然后加入之后另一个字符串。 我的代码基本上是这样的等价物: int? x=10; string s = "foo" + x ?? 0 + "bar"; 令人吃惊的是,这将运行并没有出现警告或不兼容的类型错误编译,也将这样的: int? x=10; string s = "foo" + x ?? "0" + "bar"; 然后这导致意外类

    7热度

    2回答

    每个人都知道至少有两个常见的C#成语包括聚结操作: 一个单一个: return _staticField = _staticField ?? new SingletonConstructor(); 和链中的一个: notNullableResult = nullable1 ?? nullable2 ?? nullable3 ?? default(someType); 是可读的,一致的,值得

    16热度

    5回答

    C#空合并运算符是否有C++等效项?我在我的代码中做了太多的空检查。所以寻找一种方法来减少空代码的数量。

    3热度

    7回答

    是否可以一起用任何方式操作??,并在接下来的情况下,运营商&&: bool? Any { get { var any = this.ViewState["any"] as bool?; return any.HasValue ? any.Value && this.SomeBool : any; } } 这意味着下一个: 如果any为n

    7热度

    3回答

    我已定义类人属性生日为可为空DateTime?,那么为什么不应该在以下示例中使用空合并运算符? cmd.Parameters.Add(new SqlParameter("@Birthday", SqlDbType.SmallDateTime)).Value = person.Birthday ?? DBNull.Value; 我得到的编译器错误是“Operator'??'