C# 面试题 目录

C# 中密封类 (sealed class) 的作用

推荐答案

在C#中,密封类(sealed class)用于防止其他类继承该类。通过将类标记为sealed,可以确保该类不会被其他类继承,从而保护类的实现细节不被修改或扩展。

本题详细解读

密封类的作用

  1. 防止继承:密封类的主要作用是防止其他类继承它。这在某些情况下非常有用,特别是当你希望确保类的行为不会被派生类修改或扩展时。

  2. 性能优化:在某些情况下,密封类可以帮助编译器进行优化。由于密封类不能被继承,编译器可以更安全地进行内联优化,从而提高性能。

  3. 安全性:密封类可以防止恶意代码通过继承来修改或破坏类的行为。这在编写安全敏感的代码时尤为重要。

使用场景

  • 工具类:如果你有一个工具类,并且不希望其他开发者通过继承来扩展或修改其行为,可以将该类标记为密封类。

  • 不可变类:对于不可变类(immutable class),通常不希望有子类来改变其不可变性,因此可以将该类标记为密封类。

  • 框架设计:在框架设计中,某些核心类可能不希望被用户继承和修改,这时可以使用密封类来限制继承。

示例代码

-- -------------------- ---- -------
------ ------ ----- ------
-
    ------ ---- ---------- --------
    -
        ---------------------------
    -
-

-- ------------------------
-- ------ ----- ------------ - ------
-- -
--     -- -------
-- -

在这个示例中,Logger类被标记为sealed,因此任何尝试继承Logger类的代码都会导致编译错误。

纠错
反馈