我一直在处理提到的项目c-sharp-compilerresults-generateinmemory。
我一直在编写大量代码来实现我的“类发现”。它很酷,但我意识到如果我将所有东西都实现为“System.Reflection.Assembly”的派生类,效率会高得多。
因此,在编写了新的派生类后,我遇到了一个问题。当我尝试将基类分配给新的派生类时,它会抛出一个错误,只是正常的did you miss an explicit cast
错误。
我认为 C# 对扩展类型进行了隐式转换?
所以我有一些这样的源代码......
Assembly asm = MyCompilerResults.CompiledAssembly(); /* this works */
Interface asmInterface = new Interface();
asmInterface = asm; /* bad */
asmInterface = (Interface)asm; /* bad */
public class Interface : Assembly {
public Interface() {} // I always just declare the empty constructor.
public void Helpermethod1() {}
public void Helpermethod2() {}
public void Helpermethod3() {}
};
所以因为这只是我写 C# 的第二周,所以我不得不问......
我如何将基类添加到我的类中?
这里的问题... 为什么我不能在 C# 中将隐式运算符从基类写入派生类?
这似乎表明我的选角应该有效,除非我误解了答案。