C#中的只读与VB.NET中的只读
似乎VB.NET和C#C#中的只读与VB.NET中的只读,c#,.net,vb.net,c#-to-vb.net,C#,.net,Vb.net,C# To Vb.net,似乎VB.NET和C#只读关键字有一些不同 比如说,C#中的只读属性可以在某些条件下赋值,但在VB.NET中,C#中的“从不”是一个字段修饰符。它指定只能在初始化时或在构造函数中为字段赋值 VB.NET与此相同,只是它也是一个属性修饰符。它指定属性不能分配给-即,它是一个getter。在VB.NET中,只读属性通常是从外部类创建为只读的。 如果要设置此属性,可以通过更改重新分配的局部变量从类内部轻松地进行设置 例如,在VB 2010中 Public ReadOnly Property SomeV
只读
关键字有一些不同
比如说,C#中的只读属性可以在某些条件下赋值,但在VB.NET中,C#中的“从不”是一个字段修饰符。它指定只能在初始化时或在构造函数中为字段赋值
VB.NET与此相同,只是它也是一个属性修饰符。它指定属性不能分配给-即,它是一个getter。在VB.NET中,只读属性通常是从外部类创建为只读的。 如果要设置此属性,可以通过更改重新分配的局部变量从类内部轻松地进行设置 例如,在VB 2010中
Public ReadOnly Property SomeVariable() As String
或者在早期版本中
Private _SomeVariable As String
Public ReadOnly Property SomeVariable() As String
Get
Return _SomeVariable
End Get
End Property
您可以从类内部将其设置为:
_SomeVariable = somevalue
无法从外部类修改属性值。您没有在C#属性上应用
readonly
关键字-您只是没有给属性设置器。如果您能在这里包含一些示例代码,说明您认为存在差异的地方,这将非常有用。@JonSkeet,我同意,这个问题试图比较“青蛙”和“蜂蜜”。这个问题根本不清楚它试图比较什么。请阅读Jon,我在VB.NET中设置了一个只读属性,我试图在构造函数中设置它的值,但没有成功,这就是为什么这个问题。现在,当我明白我不能删除它)如果你问了一个问题,因为代码没有按你期望的那样工作,你为什么不提供代码?(你读过我链接的博文了吗?@serhio-我的疏忽-现在已修复:)“当它被声明时”,实际上是构造函数的一部分,所以规则仍然只在构造函数中。@Lasse V.Karlsen♦ 对于编写代码的开发人员来说,这不是同一件事,即使对于编译器来说可能是一样的。问题也有.net标记,对于.net,初始化发生在构造函数中。