C#7 的一些新语法

  1. Out参数
#region 1.Out参数
var str = "2";
///之前的写法
{
    int iValue;
    //将str转化成int类型,若转化成功,将值赋给iValue,并返回true;若转化失败,返回false。
    if (int.TryParse(str, out iValue))
    {
        WriteLine(iValue);
    }
}
//C#7的写法
{
    if (int.TryParse(str, out int iValue))
    {
        WriteLine(iValue);
    }
    //或者
    if (int.TryParse(str, out var vValue))
    {
        WriteLine(iValue);
    }
}
#endregion
  1. 模式
#region 2.模式 pattern
{
    WriteLine("C#7_2.模式 pattern:");
    this.PrintStars(null);
    this.PrintStars(2);
}
/// <summary>
///  具有模式的 IS 表达式
/// </summary>
private void PrintStars(Object oValue)
{
    if (oValue is null) return;// 常量模式 "null"
    if (!(oValue is int iValue)) return;// 类型模式 定义了一个变量 "int i"
    WriteLine(iValue);
    WriteLine(new string('*', iValue));
}
  1. Swith
#region 3. Swith
{
    WriteLine("C#7_3. Swith新语法:");
    this.Swith("wang");
    this.Swith("Max");
    this.Swith("wangMax");
    this.Swith(null);
    this.Swith("");
}
#endregion

/// <summary>
/// 可以设定任何类型的 Switch 语句(不只是原始类型)
/// 模式可以用在 case 语句中
/// Case 语句可以有特殊的条件
/// </summary>
private void Swith(string sValue)
{
    int iValue = 1;
    switch (sValue)
    {
        case string s when s.Length >= 4:
            WriteLine("s");
            break;
        case "Max" when sValue.Length > 2:
            WriteLine(sValue);
            break;
        default:
            WriteLine("default");
            break;
        case null:
            WriteLine("null");
            break;
    }
}
  1. 数字分隔符【每隔3位+"_"】

     #region 4.数字分隔符【每隔3位+"_"】
     long lValue = 100_000_000;
     WriteLine(lValue);
     #endregion
    
  2. 局部函数

     #region 5. 局部函数
     {
         WriteLine("C#7_6. 局部函数:");
         Add(3);
         int Add(int i)
         {
             WriteLine(2 + i);
             return i;
         }
     }
     #endregion
    
  3. c#教程

     #region 6.元组
     {
         var result = this.LookupName(1);
         WriteLine(result.Item1);
         WriteLine(result.Item2);
         WriteLine(result.Item3);
       
     }
     {
         var result = this.LookupNameByName(1);
         WriteLine(result.first);
         WriteLine(result.middle);
         WriteLine(result.last);
    
         WriteLine(result.Item1);
         WriteLine(result.Item2);
         WriteLine(result.Item3);
     }
     #endregion
    

    ///
    /// System.ValueTuple 需要安装这个nuget包
    ///
    ///
    ///
    private (string, string, string) LookupName(long id) // tuple return type
    {
    return (“first”, “middle”, “last”);
    }

    private (string first, string middle, string last) LookupNameByName(long id) // tuple return type
    {
    return (“first”, “middle”, “last”);
    //return (first: “first”, middle: “middle”, last: “last”);
    }

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

上一篇:697. 数组的度


下一篇:C--联合体union