-3

これらは 2 つの別個の質問です。

  1. シールとマークされたクラスは、シールされたクラス内に存在できますか?
  2. staticとしてマークされたクラスは、シールされたクラス内に存在できますか?

これらの質問は、中心的な概念をよりよく理解するためのものです。上記の概念の実際の使用法を強調できる人はいますか?

4

2 に答える 2

3

C# は、ネストされたクラスの概念をサポートしています。「スーパークラス」という用語を使用するのは適切ではありません。これは、ネストされたクラスに継承関係があることを意味します。「外部クラス」という用語が適切です。

アクセシビリティを制御する場合にのみ役立ちます。ネストされたクラスは、外部クラスのプライベート メンバーにアクセスできます。そして最も便利なのは、ネストされたクラスをプライベートに宣言できるため、外部クラスの外部のコードから完全に見えなくなります。デフォルトの内部が提供するよりもはるかに強力な保証。

したがって、外部クラスを封印すると宣言しても、ネストされたクラスには何の影響もありません。試してみるだけで簡単に確認できます。

于 2014-04-20T11:31:51.420 に答える
0

はい。static classの中にを配置できますsealed class

以下は完全に有効です。

public sealed class SealedClass
{
    public static class StaticClass 
    { 

    }
}

その逆も有効です。

public static class SealedClass
{
    public sealed class StaticClass 
    { 

    }
}

sealedクラスとは?

それらは継承できません。コンパイル時および実行時のパフォーマンスが向上します。

staticクラスとは?

それらはインスタンス化できません。

于 2014-04-20T11:17:07.007 に答える