我正在从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而不会出错。)
我知道这个问题没用。但对我来说非常。
答案 0 :(得分:2)
我认为您希望建议您的解释器使用替代实现(而不是IL使用您的自定义代码)。大多数CLR友好的方式是创建解释器将读取的属性,并相应地使用您自己的一些代码,反向PInvoke。
struct MyString {
[WhenRunningInInterpretator(implementationFunction="function42")]
public char this[ int index ] {
get {...} set {....}; }
}