• 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

    2. 模式

                #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));
            }

    3. 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;
                }
            }

    4. 数字分隔符【每隔3位+"_"】

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

    5. 局部函数

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

    6. 元组

                #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
            /// <summary>
            /// System.ValueTuple 需要安装这个nuget包
            /// </summary>
            /// <param name="id"></param>
            /// <returns></returns>
            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");
            }
  • 相关阅读:
    topcoder srm 320 div1
    topcoder srm 325 div1
    topcoder srm 330 div1
    topcoder srm 335 div1
    topcoder srm 340 div1
    topcoder srm 300 div1
    topcoder srm 305 div1
    topcoder srm 310 div1
    topcoder srm 315 div1
    如何统计iOS产品不同渠道的下载量?
  • 原文地址:https://www.cnblogs.com/wangwangwangMax/p/14070313.html
Copyright © 2020-2023  润新知