我学会了用delphi编程,我总是喜欢对象pascal代码风格,看起来非常直观和干净。
当你查看变量声明时,你知道你在处理什么......
快速摘要:
例外 E EMyError
类和类型 T TMyClass
类 f 中的字段fVisible
活动开启 OnMouseDown
指针类型 P PMyRecord
属性获取某些内容设置 SetSomething
在C ++ C#Java或任何其他语言代码中使用此标识符命名样式太糟糕了吗?
答案 0 :(得分:3)
据我所知,T,E,F和P前缀仅在Delphi编程中常用。它们是这里成语的标准部分,但在C#或Java中它们看起来不合适。
Get和Set是面向对象编程的标准。不确定On前缀,但我发现这在任何事件驱动的框架中都很常见并不会让我感到惊讶。
答案 1 :(得分:3)
除了品味和文化问题(正如梅森已经指出的那样)
可能有理由将公约与某种语言联系起来,而其他语言也可能有其理由。
我只能快速想到几个例子:
对于不需要在使用前定义指针类型的语言(如大多数非Borland Pascals,C等),通常很少需要“P”。
其他语言也可能有其他消除歧义的方法(例如在C中,通常类型是大写的,变量或字段获得小写标识符),并且不需要“T”。 (严格来说,Delphi至少对于字段都没有,因为标识符在某种程度上被上下文查找(比如字段和类型的不同名称空间),但是约定比该特性更旧)
顺便说一下,你忘记了“我”的接口,枚举名前缀了一些从基本类型名称派生的前缀(例如TStringsDefined = set of (sdDelimiter, sdQuoteChar, sdNameValueSeparator,
sdLineBreak, sdStrictDelimiter)
)
等。
嗯,这是另一个特定于语言的位,因为Object Pascal总是将枚举名称添加到全局空间(而不是需要enumtype.enumname)。使用前缀可以减少全局空间的污染。
这是我对Delphi btw的一个宠儿小便,缺乏导入控制(Modula2风格IMPORT QUALIFIED,FROM xxx IMPORT。扩展Pascal也有一些这个)