C#6的主要特性

C#6的主要特性包括自动属性优化,引入了简易函数表达式写法,字符串插值,static using,判定null的简写操作符?.以及nameof运算符。自动属性优化实现了真正的不变性,简易函数表达式使得属性赋值更简洁。字符串插值提供了更易读的字符串格式化。static using允许省略静态类名,但可能影响代码可读性。判定null的简写操作符?.简化了null检查,而nameof避免了魔法字符串的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C#6于2015年7月发布,并且集成到 .NET Framework 4.6和Visual Studio2015中,它的大部分特性都是语法糖,以下列出部分主要特性

1.自动属性优化

针对熟悉的get、set对于不变性(即在创建之后就不可以改变它的值)实现的优化

过去的方式

如果我们想创建一个具有不变性的字段,通过如下方式完成:


class Program
{
   
    static void Main(string[] args)
    {
   
        var a = new ImmutableClass(100);
        // 只读的值不能修改
        // a.a = 5;
        Console.ReadKey();
    }
}
 
class ImmutableClass
{
   
    private readonly int _a;
    public int a {
    get {
    return _a; } private set; }
    public ImmutableClass(int a)
    {
   
        _a = a;
    }
}

如果需要某个属性是只读的,则需要指定setter为私有的。此时我们在外部将无法改变a的值(只能在创建时指定),但其实这是一种有问题的不变性

有问题的不变性

我们可以通过复写一些方法在内部改变成员变量的值

class Program
{
   
    static void Main(string[] args)
    {
   
        var a = new ImmutableClass(100);
        a.ToString();
         
        Console.WriteLine(a.a); // 99
        Console.ReadKey();
    }
}
 
class ImmutableClass
{
   
    private readonly int _a;
    public int a {
    get {
    return _a; } private set; }
    public ImmutableClass(int a)
    {
   
        _a = a;
    }
    public override string ToString()
    {
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值