私は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# を書き始めてまだ 2 週間しか経っていないので、質問しなければなりません...
クラスに基本クラスを追加するにはどうすればよいですか?
ここでの質問... C# で基本クラスから派生クラスに暗黙の演算子を記述できないのはなぜですか?
これは、答えを誤解していない限り、私のキャスティングが機能するはずであることを示しているようです。