gpt4 book ai didi

VB.NET 接口(interface)实例化异常

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

我正在查看我们拥有的一些遗留代码,我注意到一些让我感到特别奇怪的东西。

假设我们有具体类 TestClass . TestClass实现接口(interface)ITestClass .

那么,在以下情况下,我应该期待什么样的行为呢? (我什至没有意识到这是可能的)

Dim testClass as TestClass = Nothing
Try
testClass = New ITestClass
...
End Try

据我了解,您将被迫使用 TestClass而不是它的接口(interface)对应物。

最佳答案

有一种特殊情况,接口(interface)可以像类一样被实例化,它与 CoClassAttribute 相关。 .有关详细信息,请参阅此博客文章:

  • Unnatural acts on source code: Instantiating interfaces

  • 博客文章中翻译为 VB 的示例:
    <ComImport(), Guid("C906C002-B214-40d7-8941-F223868B39A5"), CoClass(GetType(Foo))> _
    Public Interface IFoo
    End Interface

    Public Class Foo
    Implements IFoo
    End Class

    Sub Main()
    Dim f As New IFoo() ' Compiles
    End Sub

    关于VB.NET 接口(interface)实例化异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8988803/

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