【发布时间】:2009-06-06 03:40:09
【问题描述】:
我在我的项目中使用 Microsoft Text-to-Text Speech 功能。但我有一个问题,实际上不是直接的。所以:
通常程序员在创建接口时,会将 I 作为接口名称的前缀,例如 IReadable、IEnumerator 等。但我遇到了一些令我震惊的事情。
在 Microsoft Text Speech DLL 中有类似这样的内容:SpVoice,它是接口(出于某种原因,他们没有将 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.
我不明白的是如何?第一个是如何工作的,尽管它说它是一个包含大量未实现方法等的接口。
请有人解释一下如何?
我现在真的很困惑,也许微软开发人员没有为此加上 I 前缀,它可以被实例化。
提前致谢。 希望我能清楚地描述我的问题。
这是我想让你看到的图片:
(来源:pixelshack.us)
【问题讨论】:
-
这是 C# 吗?那么你就不能实例化接口,这毫无疑问。
-
是的,我知道,但为什么会这样?
-
你从哪里得到 SpeechLib?
-
来自 COM 的 Microsoft 语音对象库