【问题标题】:Inheriting from classes从类继承
【发布时间】:2009-09-06 20:38:51
【问题描述】:

在 C# 中,您可以继承多少个类?

当你写的时候:

using System.Web.UI;

这是否考虑从一个类继承?

【问题讨论】:

    标签: c# inheritance using-directives


    【解决方案1】:

    一个使用指令

    using X.Y.Z;
    

    仅表示如果标识符不在本地命名空间中,则命名空间X.Y.Z 也将被搜索以查找该标识符。这使您可以拥有一些更简洁的代码,例如,如果您有using System.IO.Path,则不必执行System.IO.Path.Combine()。我不相信您可以拥有多少 using 语句。

    C# 不允许多重继承 -- 你只能从一个类继承。但是,您可以实现任意数量的接口。

    【讨论】:

    • 使用命名空间指令只能应用于命名空间; 'System.IO.Path' 是一种类型而不是命名空间
    【解决方案2】:

    不,

    using directive 允许您在向代码中添加控件或类时不必键入完全限定的命名空间。

    例如,如果我添加:

    using System.Web.UI;
    

    那么我可以简单地写:

    Page.Something
    

    代替:

    System.Web.UI.Page.Something
    

    继承
    您只能inherit from one class,但您可以实现任意数量的Interfaces

    如果我的所有页面都继承自一个基类,那么该基类将需要继承自 Page 类才能发挥作用。

    【讨论】:

      【解决方案3】:

      你只能从一个类继承。

      编写“使用 System.Web.UI”与继承无关。 该语句仅表示您想“使用”命名空间 System.Web.UI 中的类,以便您可以直接编写类名,而不是让它以命名空间名作为前缀。

      【讨论】:

        【解决方案4】:

        没有。

        1. using 使外部定义的类可见
        2. class Cat : Animal 定义了一个类 Pet,它从 Animal 派生(继承)

        C# 与 C++ 不同,不支持多重继承,因此您只能从一个类派生它(但是,您可以实现任意数量的接口)

        【讨论】:

          【解决方案5】:

          我想在 Jen 给出的答案中添加一个附录。说 C# 不支持多重继承是正确的,但是知道可以通过忽略 CLS(命令语言子系统)在 .NET 中实现多重继承会很有用。这是一项令人讨厌的工作,并且涉及到您滚动自己的 vtable,但这是可能的。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2023-03-27
            • 2018-05-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-10-17
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多