VB6中的公共属性,朋友和公共变量有什么区别

时间:2012-03-12 15:33:45

标签: class vb6 encapsulation

好的,所以我理解离子VB6,类中的封装属性可以属于以下三种类别之一:

  • 公共财产
  • 朋友
  • 公共变量

这些与C#等更现代的语言中的公共和私有属性相比有何区别?

3 个答案:

答案 0 :(得分:12)

范围限定符 PublicFriend determine不同项目中的客户是否可以看到该项目。

  • Public项可以访问同一项目中其他项目 1 代码中的客户端代码。
  • Friend项只能访问同一项目中的代码, 才能访问其他项目中的代码。
  • Private项只能访问同一类中的代码。

属性公共变量不同,因为对于属性,您可以在客户端获取或设置值 2 时执行您自己的代码。根据Deanna的评论编辑:另请注意,变量可以通过ByRef传递给函数,并且更改将按预期工作。这不是属性的情况。

NB C#可能更现代,但恕我直言VB6对属性和公共变量的处理是{。{3}}而不是.Net处理。

  • 在VB6中,您可以在不破坏客户端的情况下将公共变量更改为属性。你甚至不必重新编译它们。 {。3}在.Net。
  • 在VB6中,公共变量可以与数据绑定一起使用。 {。3}在.Net。
  • 在VB6中,公共变量可以与接口一起使用。 .Net中的significantly better

恕我直言微软在.Net中创建属性和公共字段之间的这些差异时犯了一个真正的设计错误。不相信?在.Net的第一个版本之后,Not trueNot true编译器被修改为支持Not true。这些允许您只在一行代码中创建属性,以便以后可以在get / set上添加逻辑而不会导致问题。恕我直言,这证明公共变量应该与属性无法区分。


1假设您的项目类型实际上允许您的类被其他项目(即ActiveX DLL,OCX或ActiveX exe)使用。
2在Property GetProperty LetProperty Set程序中。

答案 1 :(得分:2)

  • 公共意味着任何其他类都可以访问它 引用你的项目/ dll。
  • 朋友意味着可以访问它 你的程序集中的任何其他类(所以只有你做的exe 上课)

变量和属性几乎相同。属性是首选,因为您可以设置其他类是否可以设置或获取变量(Property封装变量)

在C#中它是相同的,只有你使用内部而不是朋友

答案 2 :(得分:1)

私有财产是我们自己和其他家庭成员使用的财产。但是,公共财产是我们所有社区,社会或国家人民使用的财产。