我想我会问...但是有没有办法让属性的Get部分可以公开使用,而又可以将其设为私有?
否则,我想我需要两个属性或一个属性和一个方法,只是认为这样做会更清洁。
我想我会问...但是有没有办法让属性的Get部分可以公开使用,而又可以将其设为私有?
否则,我想我需要两个属性或一个属性和一个方法,只是认为这样做会更清洁。
Name
VB.NET中属性的设置器,可以将其拆分为FirstName
和(Surname
如果需要),然后同时进行设置。C#可以做到这一点吗,还是上面的声明是您可以做到的?
Answers:
我不确定Visual Studio的最低最低要求是多少,但是在VS2015中,您可以使用
Public ReadOnly Property Name As String
对于公共访问,它是只读的,但可以使用进行私下修改 _Name
我发现将标记property
为readonly
比上面的答案更干净。我相信vb14是必需的。
Private _Name As String
Public ReadOnly Property Name() As String
Get
Return _Name
End Get
End Property
这可以浓缩为
Public ReadOnly Property Name As String
https://msdn.microsoft.com/zh-cn/library/dd293589.aspx?f=255&MSPPError=-2147217396
如果您使用的是VS2010或更高版本,则比这更容易
Public Property Name as String
您可以获得私人财产,并且完全免费获取/设置!
请参阅此博客文章:Scott Gu的博客
ReadOnly
可以在类中设置与自动实现的属性等效的属性。但是,您提出了一个有趣的观点。您也许可以拥有ReadOnly
公共财产,但可以使用场景_Name
私有财产来进行设置。但是,如果您有任何行为要放进去,Set
那可能效果不佳。您可能会弄乱它,并通过编辑来扩大答案:)
public bool HasValue { get; private set; }