在 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