gpt4 book ai didi

class - VB6中Public Property、Friend和Public Variable有什么区别

转载 作者:行者123 更新时间:2023-12-04 01:41:28 25 4
gpt4 key购买 nike

好的,所以我了解 ion VB6,类中的封装属性可以属于以下三个类别之一:

  • 公共(public)属性(property)
  • friend
  • 公共(public)变量

  • 这些之间有什么区别,它们与更现代的语言(如 C#)中的公共(public)和私有(private)属性相比如何?

    最佳答案

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

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

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

    NB C# 可能更现代,但恕我直言,VB6 对属性和公共(public)变量的处理是 significantly better比.Net 处理。
  • 在 VB6 中,您可以在不破坏客户端的情况下将公共(public)变量更改为属性。您甚至不必重新编译它们。 Not true在.Net 中。
  • 在 VB6 中,公共(public)变量可以与数据绑定(bind)一起使用。 Not true在.Net 中。
  • 在 VB6 中,公共(public)变量可以与接口(interface)一起使用。 Not true在.Net 中。

  • 恕我直言,微软在 .Net 中创建属性和公共(public)字段之间的这些差异时犯了一个真正的设计错误。不服气?在 .Net 的第一个版本之后, C#VB编译器被修改为支持 automatically implemented properties .这些允许您仅在一行代码中创建属性,以便以后可以在 get/set 上添加逻辑而不会引起问题。恕我直言,这证明应该使公共(public)变量与属性无法区分。

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

    关于class - VB6中Public Property、Friend和Public Variable有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9670022/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com