gpt4 book ai didi

class - 看起来我正在实例化这个 SpeechAPI 接口(interface)。这怎么可能?

转载 作者:行者123 更新时间:2023-12-02 07:33:35 26 4
gpt4 key购买 nike

我在我的项目中使用 Microsoft 文本到文本语音功能。但我对此有一个问题,实际上不是直接的问题。所以:

通常程序员在创建接口(interface)时,他们会将 I 作为接口(interface)名称的前缀,例如 IReadable、IEnumerator 等。但我遇到了一些让我震惊的事情。

在 Microsoft Text Speech DLL 中有这样的东西:SpVoice,它是接口(interface)(由于某种原因他们没有将 I 作为前缀,我不知道为什么?)和 SpVoiceClass。那么您可能会问什么问题,在这里:

SpVoice speak= new SpVoice(); //I created an object from SpVoice Interface
speak.Speak("Hello StackOverFlow"); //and it speaks and say exactly what I write.

SpVoiceClass speak =  new SpVoiceClass();
speak.Speak("Hello Kowanichi"); //and it does the same thing.

我不明白的是如何?第一个是如何工作的,尽管它说它是一个带有大量未实现方法等的接口(interface)。

请有人解释一下怎么做?

我现在真的很困惑,也许微软开发人员没有为此添加 I 前缀,它可以被实例化。

提前致谢。希望我能清楚地描述我的问题。

这是我希望您看到的图片: alt text
(来源:pixelshack.us)

最佳答案

编辑:啊,我明白了。看一下SpVoice的定义:

[CoClass(typeof(SpVoiceClass))]
public interface SpVoice : ISpeechVoice, _ISpeechVoiceEvents_Event
{}

然后查找CoClass属性:

A coclass supplies concrete implementation(s) of one or more interfaces. In COM, such concrete implementations can be written in any programming language that supports COM component development, e.g. Delphi, C++, Visual Basic, etc.

我对此并不熟悉,所以不要将此视为福音,但看起来,通过由 CoClass 属性触发的编译器魔法,您正在实例化 SpVoiceClass 当您看起来正在实例化一个接口(interface)时。

关于class - 看起来我正在实例化这个 SpeechAPI 接口(interface)。这怎么可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/958932/

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