C#6.0特性笔记

时间:2021-04-02 23:14:36

Visual Studio 2015的C#6.0,今天无意中看这个视频,怕忘记其中的特性,故此进行记录。

public class Point
    {
        //Getter专属自动属性
        public int x { get; }
        //自动属性初始值
        ;
        //构造函数给get赋初始值
        public Point(int X, int Y) { x = X; y = Y; }
        //使用全局静态using static System.Math;
        public double Dist
        {
            get { return Sqrt(x * y); }
        }
        //使用全局枚举using static ConsoleApplication1.Color;
        public string getColor()
        {
            return yello.ToString();
        }
        //插入字符串,定义$代表可以插入
        public override string ToString()
        {
            return $"({x},{y})";
        }
        //表达式体方法。使用箭头函数
        public string ToString1() => $"({x},{y})";
        //索引值初始化
        public JObject ToJson() => new JObject() { ["x"] = x, ["y"] = y };
        //?.运算符,如果左边为null,那么全部都是null。如果不是null,则可以执行.
        public static Point FromJson(JObject json)
        {
            if (json?["x"]?.Type == JTokenType.Integer)
            {
                return new Point((int)json["x"], (int)json["y"]);
            }
            return null;
        }
        //Nameof运算符。重载修改方法的时候也会修改
        public Point Add(Point point)
        {
            if (point == null)
                throw new ArgumentNullException(nameof(point));
            return null;
        }
    }

    public enum Color
    {
        yello,
        black
    }