1

int を返す関数と Int32 を返すオーバーロードを実装する C# .NET アセンブリがあります。

public int GetAudioInputLevel()
public Int32 GetAudioInputlevel()

C# .NET アプリケーションからアセンブリを使用してその関数を呼び出すと、正常に動作します。

vb.NET アプリケーションからアセンブリの関数を呼び出すと、次のエラーが発生します。

エラー [myfunctionname] は、クラス '[myassemblysclass] にこの名前のメンバーが複数種類存在するため、あいまいです ...

私のc#.netアセンブリでその関数の署名を変更することなく、vb.netでその関数を使用するための回避策を誰かが提案できますか?

ありがとう

4

1 に答える 1

3

VB.NETでは大文字と小文字が区別されないため、言語に関する限り、これらは同じメソッドです。それらの1つの名前を変更するか、パラメーターを追加する必要があります。これにより、メソッドのシグネチャが十分に変更され、異なるものになります。ただし、パラメータを追加するためだけにパラメータを追加しないでください。

ただし、intとInt32は、見ていなくても同じものであるため、混乱を招きます。AlongはInt64のエイリアスでもあり、floatSingleの場合、C#のリストはここにあります

また、int以外のものを返すメソッドがある場合でも、たとえば、長い2つのメソッドのシグネチャは、戻り値だけで異なることはできないことにも注意してください。

于 2012-08-23T05:29:18.580 に答える