C# 不同类型的只读属性

C# 不同类型的只读属性,c#,c#-6.0,C#,C# 6.0,在C#6中,您可以具有以下属性: public Uri MyProperty => new Uri(); 或者,您也可以选择: public Uri MyProperty1 { get; } = new Uri(); 它们之间有什么区别?第一个在每次访问属性时返回一个新的Uri对象-第二个将属性初始化为一个新的Uri对象,并每次提供相同的对象。第一个在每次访问属性时返回一个新的Uri对象-第二个初始化将属性添加到一个新的Uri对象,并每次提供相同的对象。不同之处在于,这将每次创建一个U

在C#6中,您可以具有以下属性:

public Uri MyProperty => new Uri();
或者,您也可以选择:

public Uri MyProperty1 { get; } = new Uri();

它们之间有什么区别?

第一个在每次访问属性时返回一个新的
Uri
对象-第二个将属性初始化为一个新的
Uri
对象,并每次提供相同的对象。

第一个在每次访问属性时返回一个新的
Uri
对象-第二个初始化将属性添加到一个新的
Uri
对象,并每次提供相同的对象。

不同之处在于,这将每次创建一个
Uri
的新实例:

public Uri MyProperty => new Uri();
这将适用于具有指定值的支持字段:

public Uri MyProperty1 { get; } = new Uri();

不同之处在于,每次执行以下操作时,都会创建一个新的
Uri
实例:

public Uri MyProperty => new Uri();
这将适用于具有指定值的支持字段:

public Uri MyProperty1 { get; } = new Uri();

你知道那叫什么吗?我假设它是6.0的新特性?第一个是表达式体属性-第二个是仅getter自动属性。这两个都是C#6.0的新手。天哪,为什么会有人想要第一个呢?我想我更喜欢一个method@MickyD当然,一种方法也会做同样的事情。这纯粹是一种风格选择。它更“实用”。我想是这样:)+1你知道那叫什么吗?我假设它是6.0的新特性?第一个是表达式体属性-第二个是仅getter自动属性。这两个都是C#6.0的新手。天哪,为什么会有人想要第一个呢?我想我更喜欢一个method@MickyD当然,一种方法也会做同样的事情。这纯粹是一种风格选择。它更“实用”。我想是这样:)+1