属性定义中括号的含义是什么?

10
什么是在定义中属性名称周围方括号的含义?
例如:
Public Property [Date] As String 
3个回答

11

要将保留关键字用作标识符,必须使用方括号来区分标识符和关键字:

dim [String] As String

public sub [Stop]
end sub

在 msdn 上说:

任何程序元素,例如变量、类或成员,都可以与受限关键字同名。例如,你可以创建一个名为 Loop 的变量。但是,要引用你版本的它(它与受限的 Loop 关键字同名),你必须使用其完整命名空间来限定它,或者将其括在方括号([ ])中,如以下示例所示:

参考这里


8
这个语法允许你将保留字用作成员或变量的名称。但从代码可维护性的角度来看,我认为不建议这样做(对于这一点的另一种观点,请参见下面的评论!)。如果你要声明一个名为“Date”的属性作为字符串,特别是不建议这样做,但那是另外一个问题...

“不推荐使用” - 为什么?你关于数据类型不匹配的观点是正确的,但这与此无关。 - Konrad Rudolph
是的,这与其无关,可以理解。不建议这样做——因为它会让别人阅读和维护你的代码更加困难,特别是如果他们没有像你一样熟练掌握该语言,并不得不来到类似于 Stack Overflow 这样的地方询问语法的含义... - David M
1
试图在你的代码中迎合经验不足的程序员是一个基本错误。不要尝试这样做,它会使你的代码变得更糟。我不认为使用保留标识符原则上会使你的代码更难读。也许不应该夸大其词,但通常使用保留字作为标识符没有什么问题,而且往往是一个不错的选择(例如:Enumerable.Select)。 - Konrad Rudolph
如果属性在逻辑上确实是日期,那就称之为日期。比如你有一个类 Meeting,你想要存储它的日期。 - Konrad Rudolph
2
@pms1969,拥有一个带有属性MeetingDate的类Meeting是多余和不鼓励的做法。当然,人们总是可以争论这是个偏好问题,但是共识极为倾向于避免冗余。此外,声称可能会引起混淆也是错的。不存在混淆问题。如果有人对语法感到困惑,他们应该采取正确的行动来自我学习(例如通过问问题)。你不能让初学者的语法来支配你的代码,否则那样只会导致混乱。 - Konrad Rudolph
显示剩余4条评论

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接