Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#中的只读与VB.NET中的只读_C#_.net_Vb.net_C# To Vb.net - Fatal编程技术网

C#中的只读与VB.NET中的只读

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

似乎VB.NET和C#
只读
关键字有一些不同

比如说,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,初始化发生在构造函数中。