1

IL(コンパイルされたC#\ VBコード)からCへのインタープリターを作成しています。それを解釈するときにexternプロパティを作成しようとしましたが、独自のコードを設定します。

例:

struct String {
    public extern override ValueType Clone( ); //Works but with some warnings.
    public char this[ int index ] {
        extern get;
        //'System.String.this[int].get' must declare a body because it is not marked abstract, extern, or partial
        //The modifier 'extern' is not valid for this item
        extern set; //Didn't work either.
    }
}

ボディなしでゲッターとセッターを作成するにはどうすればよいですか?(ところで、エラーが発生しない限り、抽象としてマークすることもできません。)

私はこの質問が役に立たないことを知っています。しかし、私にとっては非常に。

4

1 に答える 1

2

インタプリタに別の実装を使用するように提案したいと思います(ILの代わりにカスタムコードを使用します)。最もCLRに適した方法は、インタプリタが読み取る属性を作成し、それに応じて独自のコードの一部を使用することです。これは、逆PInvokeのようなものです。

struct MyString { 
[WhenRunningInInterpretator(implementationFunction="function42")]
public char this[ int index ] { 
    get {...}  set {....};    } 
} 
于 2012-09-23T00:41:17.823 に答える