如下代碼示例所示 d1 d2 相等,d3 d4 不等,因爲賦值形式的訪問器只是new一個實例後賦值,而lambda形式(箭頭函數),則是把箭頭右側是當方法體來執行,即每次都 new一個新的實例
class Dog
{
public Dog()
{
this.Name = Guid.NewGuid().ToString("N");
}
public string Name { get; set; }
public DateTime CreateTime { get; set; } = DateTime.Now;
}
class DogHouse
{
public static Dog Dog1 { get; } = new();
public static Dog Dog2 => new();
}
internal class Program
{
static void Main(string[] args)
{
var d1 = DogHouse.Dog1;
var d2 = DogHouse.Dog1;
var d3 = DogHouse.Dog2;
var d4 = DogHouse.Dog2;
var isSame1 = d1 == d2;
var isSame2 = d3 == d4;
Console.WriteLine($"isSame1:{isSame1},isSame2:{isSame2}");
}
}