程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C#6.0是否适用于.NET 4.0?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决C#6.0是否适用于.NET 4.0??

开发过程中遇到C#6.0是否适用于.NET 4.0?的问题如何解决?下面主要结合日常开发的经验,给出你关于C#6.0是否适用于.NET 4.0?的解决方法建议,希望对你解决C#6.0是否适用于.NET 4.0?有所启发或帮助;

是的(大部分)。C#6.0需要新的Roslyn编译器,但是新的编译器可以针对较旧的框架版本进行编译。仅限于 新功能。

例如,然您可以将C#6.0中的字符串插值功能与.Net的早期版本结合使用(因为它会导致对的调用String.Format):

int i = 3;
String s = $"{i}";

您需要.Net 4.6才能使用它,IFormattable因为仅新的框架版本添加了以下内容System.FormattableString

int i = 3;
IFormattable s = $"{i}";

您提到的案例不需要框架中的类型即可工作。因此,编译器完全能够为旧框架版本支持这些功能。

解决方法

我创建了一个带有C#6.0好东西的示例项目-以零传播和属性初始化为例,设置目标版本.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);
    }
}
  • 维基百科说用于C#6.0的.NET框架是4.6。
  • 这个问题(和Visual studio 2015 CTP测试)说CLR版本是4.0.30319.0。
  • 这个MSDN页面说.NET 4、4.5、4.5.2使用CLR4。没有有关.NET 4.6的任何信息。

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

大佬总结

以上是大佬教程为你收集整理的C#6.0是否适用于.NET 4.0?全部内容,希望文章能够帮你解决C#6.0是否适用于.NET 4.0?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。