在日常工作中,我开发一个 VB6(我知道,但不要嘲笑这个受苦的人……)应用程序,该应用程序使用了我们编写的许多库(也在曾经杰出的 VB6 中)。其中一个支持库有大量通过公共属性公开的私有成员,我被要求删除这些属性,并将私有成员变量提升到与原始属性同名的公共字段中。
现在,我不是 COM 专家,但我的印象是类中的每个公开项目都有它自己的 GUID。由于我们将从每个值从 2 个 Guid(Property Get 和 Property Let)变为仅使用一个(公共字段)的情况,我预计这会破坏二进制兼容性 - 但似乎并没有没有这样做。
谁能解释为什么?
No, it hasn't破坏了兼容性,因为它hasn't删除了 property get 和 property let 方法。只是编译器现在正在为您编写它们。
这难道不是 VB6 可以说的少数几个领域之一吗?better比.Net?
- 在 .Net 中,公共字段的行为与公共属性不同,这使一些重构变得困难并导致混乱 https://devblogs.microsoft.com/vbteam/properties-vs-fields-why-does-it-matter-jonathan-aneja/.
- 在 VB6 中,公共字段的行为与公共属性完全相同,这就是为什么可以在不影响二进制兼容性的情况下进行切换。编译器在幕后产生 https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/aa716305(v=vs.60)公共字段的属性获取和设置例程。从某种意义上说,VB6已经自动实现了属性(现在做广告的 https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/dd293589(v=vs.100)作为 VB10 中的“新功能”)...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)