首頁  >  文章  >  後端開發  >  C# 模式匹配

C# 模式匹配

PHPz
PHPz原創
2024-09-03 15:32:47636瀏覽

C# 中用於匹配任何資料或任何物件的功能稱為模式匹配,此模式匹配是使用表達式is 和switch 語句執行的,其中is 表達式檢查資料或物件是否與指定的類型相容或not和switch 語句用於匹配C# 中的不同模式。透過在C#中使用表達式is和switch語句進行模式匹配,可以改變應用程式的編寫方式,使其更具可讀性,更易於維護,並且易於理解。

C# 模式匹配的方法

C# 中有兩種模式匹配方法。他們是:

1.是表達式

is 表達式用於檢查資料或物件與指定類型的相容性。

範例#1

要示範的 C# 程式是程式中的表達式。

代碼:

using System;
//a namespace called program is defined
namespace program
{
//a class called subject is defined in which a subject is assigned to a string variable
class Subject
{
public string SubName{ get; set; } = "C Sharp";
}
//a class called check is defined
class check
{
//main method is called
public static void Main(string[] args)
{
//an instance of the subject class is created
Subject sub = new Subject();
//is expression is used to check if the instance of the subject class is compatible with the type of the value assigned to the string variable in subject class
if(sub is Subject)
{
Console.WriteLine(sub.SubName);
}
}
}
}

輸出:

C# 模式匹配

說明:在上面的程式中,定義了一個名為program的命名空間。然後定義一個名為「Subject」的類,其中將主題名稱指派給一個字串變數。然後定義一個名為 check 的類,在其中呼叫 main 方法。然後建立主題類別的實例。然後表達式用於檢查新建立的主題類別實例是否與指派給類別主題中字串變數的值的類型相容。如果相容,則主題名稱將顯示為輸出。程式的輸出如上面的快照所示。

範例#2

要示範的 C# 程式是程式中的表達式。

代碼:

using System;
//a namespace called program is defined
namespace program
{
//a class called Writer is defined in which a name of the writer is assigned to a string variable
class Writer
{
public string WriterName{ get; set; } = "ShobhaShivakumar";
}
//a class called check is defined
class check
{
//main method is called
public static void Main(string[] args)
{
//an instance of the Writer class is created
Writer write = new Writer();
//is expression is used to check if the instance of the Writer class is compatible with the type of the value assigned to the string variable in Writer class
if(write is Writer)
{
Console.WriteLine(write.WriterName);
}
}
}
}

輸出:

C# 模式匹配

說明:在上面的程式中,定義了一個名為program的命名空間。然後定義一個名為 Writer 的類,其中將編寫者的名稱指派給一個字串變數。然後定義一個名為 check 的類,在其中呼叫 main 方法。然後建立 Writer 類別的實例。然後表達式用於檢查新建立的 Writer 類別實例是否與指派給 Writer 類別中字串變數的值的類型相容。如果相容,則作者的姓名將顯示為輸出。程式的輸出如上面的快照所示。

2. Switch 語句

switch 語句用於在 C# 中匹配不同的模式。

範例#1

程式中示範 Switch 語句的 C# 程式。

代碼:

using System;
//a class called check is defined
class check
{
//main method is called
public static void Main()
{
//a name is assigned to a string variable
string val = "Shobha_Shivakumar";
//switch statement is used to switch between the values that is assigned to the string variable and anything else
switch (val)
{
case "Shobha_Shivakumar":
Console.WriteLine("The assigned value is Shobha_Shivakumar");
break;
case "not_assigned":
Console.WriteLine("The assigned value is not_assigned");
break;
}
}
}

輸出:

C# 模式匹配

說明:在上面的程式中,定義了一個名為 check 的類別。然後呼叫 main 方法,其中將名稱指派給字串變數。然後 switch 語句用於在指派給字串變數的值和其他任何值之間切換。如果指派給字串變數的名稱是 switch case,則顯示對應的輸出。同樣,如果是其他內容,則顯示相應的輸出。程式的輸出如上面的快照所示。

範例#2

在程式中示範 Switch 語句的 C# 程式:

代碼:

using System;
//a class check is defined
class Check
{
//main method is called
static void Main()
{
while(true)
{
Console.WriteLine("Type any alphabet between A and Z");
try
{
//a string is expected as the input by the user
string r = Console.ReadLine();
//switch statement is used to parse the input given by the user and display the output accordingly
switch(r)
{
case "A":
{
Console.WriteLine("This is Alphabet A");
break;
}
case "B":
{
Console.WriteLine("This is alphabet B");
break;
}
default:
{
Console.WriteLine("This is something other than Alphabets A and B");
break;
}
}
}
catch
{
}
}
}
}

輸出:

C# 模式匹配

說明:在上面的程式中,定義了一個名為check的類別。然後呼叫 main 方法,其中字母表 A 到 Z 之間的字串預計作為使用者的輸入。然後 switch 語句用於解析使用者提供的輸入並相應地顯示輸出。如果輸入是 A 和 B 以外的任何字母,則輸出中也會顯示相同的字母。上述程式的輸出如上面的快照所示。

結論

在本教程中,我們透過範例及其輸出來了解模式匹配的定義和方法,從而了解 C# 中模式匹配的概念。

推薦文章

這是 C# 模式匹配的指南。在這裡,我們討論 C# 模式匹配簡介及其方法以及範例和程式碼實作。您也可以瀏覽我們其他推薦的文章以了解更多資訊 –

  1. C# 中的隨機數產生器
  2. Java 中的靜態建構子
  3. C# 中的 TextWriter
  4. C# 中的靜態建構子

以上是C# 模式匹配的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn