相关疑难解决方法(0)

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万
查看次数

C#6.0,.NET 4.51和VS2015 - 为什么字符串插值有效?

阅读以下内容后:

在我看来,除了String Interpolation,我在VS2015中针对.NET 4.51编译的任何项目都可以使用新的C#语言功能.

但是我使用VS2015定位4.51在我的开发机器上尝试了以下代码:

string varOne = "aaa";

string varTwo = $"{varOne}";

if (varTwo == "aaa")
{

}
Run Code Online (Sandbox Code Playgroud)

并且我不仅没有收到编译器错误,它的工作原理varTwo 包含aaa,如预期的那样.

有人可以解释为什么会这样,因为我不希望这个工作吗?我猜我错过了FormattableString的真正含义.有人能举个例子吗?

.net c# c#-6.0

7
推荐指数
2
解决办法
4289
查看次数

标签 统计

.net ×2

c# ×2

c#-6.0 ×2