在C#中定义属性的两种方法
public class Program {
public static bool[] Property1 => new bool[1];
public static bool[] Property2 { get; } = new bool[1];
public static void Main() {
Property1[0] = true;
Property2[0] = true;
Console.WriteLine($"{Property1[0]} {Property2[0]}");
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
这两种方式有不同的结果
假真
public static bool[] Property1 => new bool[1];
Run Code Online (Sandbox Code Playgroud)
在这里,您定义了一个每次读取该属性时都会执行的getter,因此每次都返回一个新的bool []。并且该数组中一个元素的默认值为false。
public static bool[] Property2 { get; } = new bool[1];
Run Code Online (Sandbox Code Playgroud)
在这里,您只需初始化一次属性的值,然后每次都返回相同的数组,包括将其设置为的值。