好的,所以我理解离子VB6,类中的封装属性可以属于以下三种类别之一:
这些与C#等更现代的语言中的公共和私有属性相比有何区别?
答案 0 :(得分:12)
范围限定符 Public
和Friend
determine不同项目中的客户是否可以看到该项目。
Public
项可以访问同一项目中其他项目 1 和代码中的客户端代码。 Friend
项只能访问同一项目中的代码, 才能访问其他项目中的代码。 Private
项只能访问同一类中的代码。属性与公共变量不同,因为对于属性,您可以在客户端获取或设置值 2 时执行您自己的代码。根据Deanna的评论编辑:另请注意,变量可以通过ByRef传递给函数,并且更改将按预期工作。这不是属性的情况。
NB C#可能更现代,但恕我直言VB6对属性和公共变量的处理是{。{3}}而不是.Net处理。恕我直言微软在.Net中创建属性和公共字段之间的这些差异时犯了一个真正的设计错误。不相信?在.Net的第一个版本之后,Not true和Not true编译器被修改为支持Not true。这些允许您只在一行代码中创建属性,以便以后可以在get / set上添加逻辑而不会导致问题。恕我直言,这证明公共变量应该与属性无法区分。
1假设您的项目类型实际上允许您的类被其他项目(即ActiveX DLL,OCX或ActiveX exe)使用。
2在Property Get
,Property Let
和Property Set
程序中。
答案 1 :(得分:2)
变量和属性几乎相同。属性是首选,因为您可以设置其他类是否可以设置或获取变量(Property封装变量)
在C#中它是相同的,只有你使用内部而不是朋友
答案 2 :(得分:1)
私有财产是我们自己和其他家庭成员使用的财产。但是,公共财产是我们所有社区,社会或国家人民使用的财产。