静的メソッドの多重定義について質問させてください。
(C#初心者です。)
以下のようにベースクラスと派生クラスがあります。
ClassBでWriteの実装を少し変えたいのですが、静的メソッドのためオーバーライドできません。
この場合の一般的な解決方法を教えていただけますでしょうか?
(new修飾子をつけようと考えましたが調べたところ極力つかわないほうがよいとなっていましたので
質問させていただきました)
public class ClassA
{
public ClassA()
{
}
public static void Write()
{
}
public class ClassB : ClassA
{
public ClassB()
{
}
class B : A { public override static void Foo() { } }
class C : A { public override static void Foo() { } } コンパイラはA.foo()を見つけると、どのように使用する派生クラスを知るのでしょうか? 通常の仮想メソッドでは、実際の型のvtableが含まれている『this』ポインタを取得する。 静的メソッドで、そのように利用できるような情報はありません。