どこかで読んだ
「Abstract および Sealed 修飾子は、静的なクラスと同等です」
私もそれを見つけました
「静的クラスを宣言すると、コンパイラは内部的にクラスを抽象化してシールをマークし、IL コードにプライベート コンストラクターを作成します」
だから、私はこれを行うことにしました:
static class A
{
public static void test()
{
Console.WriteLine("test");
}
}
現在、クラス「A」は継承もインスタンス化もできません。
そこで、インスタンス化を防ぐためにclass B
usingを書き、継承を防ぐために using を書きましょう。abstract
sealed
しかし、このアプローチは失敗します。
これはと同等でなければなりません
public abstract sealed class B
{
private B()
{
}
public void test()
{
Console.WriteLine("test");
}
}
But I recieve an error stating "error CS0418:
B': 抽象クラスをシールまたは静的にすることはできません"` .これが不可能な理由はありますか?
ご回答ありがとうございます。