1

我有一个 C# .NET 程序集,它实现了一个返回 int 的函数和一个返回 Int32 的重载。

public int GetAudioInputLevel()
public Int32 GetAudioInputlevel()

如果我使用 C# .NET 应用程序中的程序集并调用该函数,它可以正常工作。

如果我从 vb.NET 应用程序调用程序集的函数,我会收到以下错误:

错误 [myfunctionname] 不明确,因为类 '[myassemblysclass] ... 中存在多种具有此名称的成员

有人可以建议一种解决方法,在 vb.net 中使用该函数,而无需在我的 c# .net 程序集中更改该函数的签名吗?

谢谢

4

1 回答 1

3

VB.NET 不区分大小写,因此就语言而言,这些是相同的方法。您需要更改其中一个的名称或添加一个参数,这将充分改变方法签名,使其与众不同。但是,不要添加参数只是为了添加一个。

但是,这令人困惑,因为 int 和 Int32 是同一个东西,尽管它们看起来并不相同。Along也是 Int64 的别名,float对于 Single,C# 的列表可以在这里找到

还值得注意的是,即使您有一个方法返回的不是 int,比如 long,两个方法的签名也不能在返回值上有所不同。

于 2012-08-23T05:29:18.580 回答