これらは 2 つの別個の質問です。
- シールとマークされたクラスは、シールされたクラス内に存在できますか?
- staticとしてマークされたクラスは、シールされたクラス内に存在できますか?
これらの質問は、中心的な概念をよりよく理解するためのものです。上記の概念の実際の使用法を強調できる人はいますか?
C# は、ネストされたクラスの概念をサポートしています。「スーパークラス」という用語を使用するのは適切ではありません。これは、ネストされたクラスに継承関係があることを意味します。「外部クラス」という用語が適切です。
アクセシビリティを制御する場合にのみ役立ちます。ネストされたクラスは、外部クラスのプライベート メンバーにアクセスできます。そして最も便利なのは、ネストされたクラスをプライベートに宣言できるため、外部クラスの外部のコードから完全に見えなくなります。デフォルトの内部が提供するよりもはるかに強力な保証。
したがって、外部クラスを封印すると宣言しても、ネストされたクラスには何の影響もありません。試してみるだけで簡単に確認できます。
はい。static class
の中にを配置できますsealed class
。
以下は完全に有効です。
public sealed class SealedClass
{
public static class StaticClass
{
}
}
その逆も有効です。
public static class SealedClass
{
public sealed class StaticClass
{
}
}
sealed
クラスとは?それらは継承できません。コンパイル時および実行時のパフォーマンスが向上します。
static
クラスとは?それらはインスタンス化できません。