在 C# 中将一个类包含到另一个类中

Syed Hassan Sabeeh Kazmi 2023年1月30日 2022年6月7日
  1. 在 C# 中使用 using <namespace> 来将一个类包含在另一个类中
  2. 在 C# 中使用继承将一个类包含到另一个类中
在 C# 中将一个类包含到另一个类中

在本教程中,你将学习在 C# 中将一个类包含到另一个类中的不同方法。作为用户定义的蓝图或原型的类包含可以在另一个类中调用的对象和方法。

在另一个类中包含一个类允许一个类调用另一个类的方法和对象。此功能使用户能够在技术上对类进行分组并创建更具可读性和可维护性的代码。

在 C# 中使用 using <namespace> 来将一个类包含在另一个类中

C# 中的命名空间是按逻辑排列的类、结构、接口、枚举或委托。C# 中的命名空间可以嵌套,这意味着你可以定义一个类并将其包含在另一个类中。

特定命名空间中的类和另一个 .cs 文件中的类可以通过 using <namespace>; 调用。将一个类的成员定义为另一个类时,可以使用 dot(.) 运算符访问,例如 using <namespace>.<method>

// WelcomeClass.cs

namespace SubClassNamS
{
    public class WelcomeClass
    {
        public static void Welcome()
        {
            // To show a message box when this method from `WelcomeClass` will be called by another class
            MessageBox.Show("Hello World!", "Test Subject", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }
}

C# 项目中的 WelcomeClass 类是 WelcomeClass.cs 文件的一部分。它包含一个 Welcome() 方法。

命名空间 SubClassNamS 是对此类的引用,你可以使用它来将其包含在另一个类中。

Form1.cs 是 C# 中的一个表单,它只包含一个 button1 按钮。WelcomeClass.csForm1.cs 是同一个 C# 项目的一部分,WelcomeClass.cs 类可以由 Form1.cs 中的类使用命名空间调用。

// Form1.cs

// Use `using` Namespace of another class from a different file
using static SubClassNamS.WelcomeClass;

namespace IncludeClass
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        // Button `Button1` click event
        private void button1_Click(object sender, EventArgs e)
        {
            // No need to mention `WelcomeClass` here
            Welcome();
        }
    }
}

包括 SubClassNamS.WelcomeClass 使我们能够从 SubClassNamS 命名空间访问 WelcomeClass

此方法通过在 C# 中使用命名空间引入其方法和成员,帮助你将 WelcomeClass 类导入或包含到 Form1 类中。

在 C# 中使用继承将一个类包含到另一个类中

如果两个类来自 C# 中的同一个 .cs 文件,我们可以简单地使用 [class].[method](); 将一个类包含到另一个类中。可以使用继承将方法和元素从一个类引入另一个类。

类继承的概念包括一个 Derived 或从另一个称为 Base 或父类的类继承的子类。继承使导入类变得棘手,但使我们能够通过仅调用父类来利用两个类的方法。

using System;

// Parent Class
class Rocket
{
    public string Type = "Rocket";
    public void bang()
    {
        Console.WriteLine("Boom, Boom!");
    }
}

// Child Class
class Celebration : Rocket
{
    public string RocketModel = "HappyJones";
}

// Main program
class Program
{
    static void Main(string[] args)
    {
        Celebration Air = new Celebration();
        Air.bang();
        Console.WriteLine(Air.Type + ": " + Air.RocketModel);
    }
}

输出:

Boom, Boom!
Rocket: HappyJones

创建 Air 作为 Celebration 类的对象,它可以访问 RocketCelebration 类的元素。在 C# 中,派生类中的 Air 对象有助于使用继承将两个不同的类导入 Program 类。

如果两个类都来自同一个命名空间,则不需要 import 语句或 using 命名空间。将一个类包含到另一个类中的最简单方法是创建一个 TecClass 类的实例并从 MainClass 类调用其成员函数。

using System;

public class TecClass
{
    public static void CallMethod()
    {
        Console.WriteLine ("Hello World");
    }
}

class MainClass
{
    public static void Main(string[] args)
    {
        TecClass.CallMethod();
    }
}

输出:

Hello World

将一个类包含到另一个类中的最优化方法是为一个类创建一个单独的 .cs 文件并通过 using <namespace>; 调用它。使用 using static [namespace].[class]; 将类的静态成员包含到主类中。

Syed Hassan Sabeeh Kazmi avatar Syed Hassan Sabeeh Kazmi avatar

Hassan is a Software Engineer with a well-developed set of programming skills. He uses his knowledge and writing capabilities to produce interesting-to-read technical articles.

GitHub

相关文章 - Csharp Class