【发布时间】:2015-12-11 21:24:27
【问题描述】:
好的,所以这是在我之前提出的涉及结构和类的问题之后进行的。所以引用this question(我现在使用类作为基础)我有一个类的成员是一个数组(我知道我必须在没有维度的情况下声明它)作为构造函数的一部分我希望它定义数组的维度。当我最初尝试执行ReDim 时,编译器很不高兴,因为我将成员声明为ReadOnly。虽然我对阵列所做的事情有它自己的可行性问题,但这不是我要问的,因为它提出了一个我必须首先回答的不同问题。
有没有办法让类/结构的成员只能在类/结构之外读取,但可以在类/结构中进行修改,而无需使用属性或内部函数/子来获得读取访问权限?
基本上就像将成员声明为私有,但您至少可以在类/结构之外读取成员。仅此而已。
【问题讨论】:
-
这正是属性的用途。为什么不想使用属性?
-
嗯,我猜这真的是出于语义原因。即使该成员是私有的,它仍然是可见的,但你不能对它做任何事情。因此,当您使用该属性时,您必须给它一个与您使用它来访问的成员不同的名称。似乎是一个不必要的并发症。
-
是的。如果只有 VB.NET 支持自动实现属性的 C# 语法,允许您指定私有设置器。不过,在这里使用属性听起来是正确的做法。
标签: vb.net class structure member readonly