いくつかのコードを継承しましたが、コードを実行しようとすると上記のエラーメッセージが表示されます。以下はコードです:
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Scripting
{
[CompilerGenerated]
[Guid("C7C3F5A0-88A3-11D0-ABCB-00A0C90FFFC0")]
[TypeIdentifier]
[ComImport]
public interface IDrive
{
[DispId(0)]
[IndexerName("Path")]
string this[] { [DispId(0)] get; } //The error is here//
[DispId(10009)]
int SerialNumber { [DispId(10009)] get; }
[DispId(10007)]
string VolumeName { [DispId(10007)] get; [DispId(10007)] set; }
[SpecialName]
[MethodImpl(MethodCodeType = MethodCodeType.Runtime)]
void _VtblGap1_7();
[SpecialName]
[MethodImpl(MethodCodeType = MethodCodeType.Runtime)]
void _VtblGap2_1();
}
}
私はC#を初めて使用し、どのパラメーターが欠落しているか知りたいです。
元のコーダーに聞くことができません。どんな助けでも大歓迎です。
エラーが言うように、「インデクサーには少なくとも1つのパラメーターが必要です」。
したがって、インデクサーにパラメーターを追加する必要があります。
string this[int index] { [DispId(0)] get; }
考えてみれば、インデクサーを使用するときは、パラメーターとして整数を指定する必要があります。
例えば
string path = myIDrive[0]; // Use the integer parameter to access the element
var wut = myIDrive[?]; // without any parameter, how would you get the Path data?
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加