gpt4 book ai didi

com - 为什么公共(public)字段和属性可以互换二进制兼容?

转载 作者:行者123 更新时间:2023-12-04 18:16:15 25 4
gpt4 key购买 nike

在日常工作中,我在一个 VB6(我知道,但不要 mock 受苦的......)应用程序上工作,该应用程序使用了我们编写的许多库(也在曾经杰出的 VB6 中)。其中一个支持库有大量通过公共(public)属性公开的私有(private)成员,我被要求删除这些属性,并将私有(private)成员变量提升到与原始属性同名的公共(public)字段中。

现在,我不是 COM 专家,但我的印象是类中的每个公开项目都有自己的 GUID。由于我们会从每个值从 2 个 Guid(Property Get 和 Property Let)变为一个他们只使用一个(公共(public)字段)的情况,我希望这会破坏二进制兼容性 - 但它似乎没有没那么做。

谁能解释为什么?

最佳答案

不,它没有破坏兼容性,因为它没有删除属性 get 和 property let 方法。只是编译器现在正在为您编写它们。
这难道不是 VB6 可以说比 .Net 更好的少数几个领域之一吗?

  • 在 .Net 中,公共(public)字段的行为与公共(public)属性不同,这 makes some refactorings difficult and causes confusion .
  • 在 VB6 中,公共(public)字段的行为与公共(public)属性完全一样,这就是为什么可以在不影响二进制兼容性的情况下进行切换。在幕后,编译器 generates属性获取和设置公共(public)字段的例程。从某种意义上说,VB6 已经自动实现了属性(现在 advertised 作为 VB10 中的“新功能”)...
  • 关于com - 为什么公共(public)字段和属性可以互换二进制兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2914088/

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