作者:梦苓718 | 来源:互联网 | 2022-12-06 19:11
在VB.NET中,我注意到我可以直接使用Property关键字,然后再使用属性名称和数据类型来创建属性,而无需使用getter和setter方法,尽管我无法在C#中做到这一点!
但是,似乎将此属性封装起来,就像将其放入getter和setter方法一样!
请看下面的截图。
在上面的屏幕截图中,我要谈论的属性是number1,并且我创建了另一个封装在名为number2的getter和setter方法中的属性。
然后,我在Class2中创建了Class1的新实例,但是我注意到在创建类的实例之前,number1属性是不公开的,就像它被封装在类似于number2属性的getter和setter方法!
有什么解释吗?
1> Ron Beyer..:
这称为“自动属性”,并且在VB.NET文档中已明确定义:
Public Property Name As String
Public Property Owner As String = "DefaultName"
Public Property Items As New List(Of String) From {"M", "T", "W"}
Public Property ID As New Guid()
都是具有getter和setter(以及自动创建的后备字段)的所有自动属性。
C#要求您使用,{get; set;}
但基本相同(因为C#没有Property
关键字,它需要一些东西来区分字段和属性,所以可以这样{get; set;}
做)。C#有所不同,尽管您可以定义仅吸气剂的属性,而无需使用{get; set;}
...
public int MyProperty => 10;
相当于
public int MyProperty { get { return 10; } }