C#6 的一些新语法

people类

public class People
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
    /// <summary>
    ///C#6新语法. :8.自动实现的属性初始化器
    /// </summary>
    public DateTime BirthDay { get; set; } = DateTime.Now.AddYears(-22);

    /// <summary>
    /// C#6新语法:在属性/方法里使用Lambda表达式(Expression bodies on property-like function members)
    /// </summary>
    public string NameFormat => string.Format("姓名:{0}", "NameFormat");
    /// <summary>
    /// C#6新语法:在属性/方法里使用Lambda表达式(Expression bodies on property-like function members)
    /// </summary>
    public void Print() => WriteLine(NameFormat);
}

1.导入静态类:
之前的写法:静态类.

            {
                Console.WriteLine("Hello!");
                Console.WriteLine($"之前的使用方式[静态类.]:{Math.Max(2, 3)}"); 
            }
C#6的写法:

            //引入命名空间
            using static System.Math;
            using static System.Console;
            WriteLine("Hello!");
            WriteLine($"现在的使用方式引入命名空间,这边直接调用:{ Max(2, 3)}");

2.字符串嵌入值

#region 2.字符串嵌入值(String interpolation)
{
    WriteLine($"Id:{people.Id}  姓名:{people.Name} 生日:{people.BirthDay.ToString("yyyy-MM-dd")}");
    
    WriteLine($"{(people.Age >= 25 ? "腊肉" : "鲜肉")}");

    WriteLine($"Id:{{{people.Id}}} 姓名:{{{people.Name}}}");
}
#endregion

3.空值运算符

#region 3.空值运算符(Null-conditional operators) 可空判断
{
    int? iValue = null;
    string sValue = iValue?.ToString();//string sValue = iValue.ToString();不判断会报错
    iValue = Convert.ToInt32(sValue);
    WriteLine($"iValue:{iValue}");
    string sName = "";
    WriteLine($"sName:{sName?.ToString()}");
}
#endregion

4.对象初始化器

#region 4.对象初始化器(Index Initializers)
{
    //之前通过add方法,add keyvalue进去
    {
        IDictionary<int, string> dictOld = new Dictionary<int, string>() { };
        dictOld.Add(1, "M");
        dictOld.Add(2, "A");
        dictOld.Add(3, "X");
        foreach (var keyValue in dictOld)
        {
            Console.WriteLine($"key:{keyValue.Key},value:{keyValue.Value}");
        }
    }

    {
        IDictionary<int, string> dictOld1 = new Dictionary<int, string>()
        {
            { 1,"M"},{ 2,"A"},{ 3,"X"}
        };
    }

    {
        //通过索引的方式给字段进行初始化
        IDictionary<int, DateTime> dictNew = new Dictionary<int, DateTime>()
        {
            [1] = DateTime.Now,
            [2] = DateTime.Now.AddDays(-1),
            [3] = DateTime.Now.AddDays(-2)
        };
        foreach (var keyValue in dictNew)
        {
            Console.WriteLine($"key:{keyValue.Key},value:{keyValue.Value}");
        }
    }
}
#endregion

5.异常过滤器

#region 5.异常过滤器(Exception filters)
{
    int iExceptionValue = 2;
    try
    {
        Int32.Parse("S");//Parse类型强制转换
    }
    catch (Exception e) when (iExceptionValue > 1)
    {
        WriteLine(e.Message);
    }
}
#endregion

6.nameof表达c#教程


```csharp
#region 6.nameof表达式 (nameof expressions)
{
    /*比如我们平时喜欢写字符串的形式,如果项目越来越大,后期突然哪个不用了,
 * 使用字符串的形式维护起来就会很麻烦,用nameof就可以很好的解决,最重要的是不会影响性能!*/
    WriteLine(nameof(people));
    WriteLine(nameof(people.Name));
}
#endregion

7.在属性/方法里使用Lambda表达式


/// <summary>
/// C#6新语法:在属性/方法里使用Lambda表达式(Expression bodies on property-like function members)
/// </summary>
public string NameFormat => string.Format("姓名:{0}", "NameFormat");
/// <summary>
/// C#6新语法:在属性/方法里使用Lambda表达式(Expression bodies on property-like function members)
/// </summary>
public void Print() => WriteLine(NameFormat);

    #region 7.在属性/方法里使用Lambda表达式(Expression bodies on property-like function members)
    {
        people.Print();
    }
    #endregion




作者:wangwangwangMax
出处: http://www.cnblogs.com/wangwangwangMax/








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值