外部财产

时间:2012-09-23 00:11:18

标签: c# properties interpreter

我正在从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.
    }
}

如何在没有身体的情况下制造吸气剂和固定剂? (顺便说一下,我也不能将其标记为abstract而不会出错。)

我知道这个问题没用。但对我来说非常。

1 个答案:

答案 0 :(得分:2)

我认为您希望建议您的解释器使用替代实现(而不是IL使用您的自定义代码)。大多数CLR友好的方式是创建解释器将读取的属性,并相应地使用您自己的一些代码,反向PInvoke。

struct MyString { 
[WhenRunningInInterpretator(implementationFunction="function42")]
public char this[ int index ] { 
    get {...}  set {....};    } 
}