相关疑难解决方法(0)

返回null或空集合是否更好?

这是一个普遍的问题(但我使用的是C#),最好的方法是什么(最佳实践),对于将集合作为返回类型的方法,是否返回null或空集合?

c# collections

397
推荐指数
9
解决办法
10万
查看次数

C#6.0适用于.NET 4.0吗?

我创建了一个示例项目,使用C#6.0好东西 - 以null传播和属性初始化为例,设置目标版本.NET 4.0并且它...工作.

public class Cat
{
    public int TailLength { get; set; } = 4;

    public Cat Friend { get; set; }

    public string Mew() { return "Mew!"; }
}

class Program
{
    static void Main(string[] args)
    {
        var cat = new Cat {Friend = new Cat()};
        Console.WriteLine(cat?.Friend.Mew());
        Console.WriteLine(cat?.Friend?.Friend?.Mew() ?? "Null");
        Console.WriteLine(cat?.Friend?.Friend?.TailLength ?? 0);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是否意味着我可以将C#6.0功能用于我的面向.NET 4.0的软件?有任何限制或缺点吗?

.net c# c#-6.0

271
推荐指数
3
解决办法
7万
查看次数

a =(x == null)的最佳语法?null:x.func()

这里的基本问题 - 我有许多代码行,如下所示:

var a = (long_expression == null) ? null : long_expression.Method();
Run Code Online (Sandbox Code Playgroud)

类似的行在这个函数中重复了很多.long_expression每次都不一样.我试图找到一种方法来避免重复long_expression,但保持这种紧凑.像是相反的东西operator ??.目前我正在考虑放弃并将其放在多行上,如:

var temp = long_expression;
var a = (temp == null) ? null : temp.Method();
Run Code Online (Sandbox Code Playgroud)

但我很好奇是否有一些我不知道的聪明语法会使这更加简洁.

c# syntax

58
推荐指数
4
解决办法
3780
查看次数

标签 统计

c# ×3

.net ×1

c#-6.0 ×1

collections ×1

syntax ×1