首頁  >  文章  >  後端開發  >  C# 使用靜態

C# 使用靜態

王林
王林原創
2024-09-03 15:30:36867瀏覽

using static 指令於 2016 年隨著 C# 版本 6 的發布而引入,它允許我們引用靜態成員,而無需命名空間引用,甚至不需要類型引用,並且 using static 指令也可用於引用嵌套類型。例如,透過使用靜態指令,可以透過不引用類別本身來引用控制台類別的靜態成員,這會產生非常簡單而高效的程式碼,並且使用靜態指令還使程式碼更具可讀性,並且類別的靜態成員可以使用static 指令匯入到來源檔案中。

C# 中使用 static 指令的語法如下:

using static <fully-qualified-type-name>;

其中完全限定型別名稱是型別名稱,其靜態且巢狀的成員可以被引用而無需使用型別本身。

 在 C# 中使用 static 指令的工作原理

  • 使用靜態指令是在 2015 年隨著 C# 版本 6 的發布而引入的。
  • 使用 static 指令可以引用靜態成員,而無需引用命名空間或類別。
  • 巢狀類型也可以透過使用 static 指令來引用。

考慮下面的範例來解釋 C# 中使用 static 指令的用法:

using System.IO;
//using static directive is defined for system.Console
using static System.Console;
//a class called Check is defined
class Check
{
//Main method is called
static void Main()
{
//WriteLine method is referenced without using the Console class name
WriteLine("Welcome to using static directives");
}
}

輸出:

C# 使用靜態

在上面的程式中,為系統定義了使用靜態指令。安慰。然後檢查是否定義了類別。然後呼叫main方法。然後,在不使用 Console 類別名稱的情況下引用 WriteLine 方法,因為我們為系統使用了 static 指令。安慰。程式的輸出如上面的快照所示。

C# 使用靜態的範例

以下是下面提到的範例

範例#1

C# 程式示範在程式中使用 static 指令的用法

代碼:

//using static directive for system.console
using static System.Console;
//using static directive for system.math
using static System.Math;
//using static directive for system.string
using static System.String;
//a namespace called Features is defined
namespace Features
{
//a class called import is defined
class Import
{
//main method is called
public static void Main(string[] args)
{
//the sqrt method is called without referencing math class because using static directive is used for system.math
double sqroot   = Sqrt(64);
//the concat method is called without referencing math class because using static directive is used for system.string
string newString = Concat("Learning"," is fun");
//the writeline method is called without referencing math class because using static directive is used for system.console
WriteLine(sqroot);
WriteLine(newString);
}
}
}

輸出:

C# 使用靜態

在上面的程式中,我們為 system.console 使用了 static 指令。然後我們為 system.math 使用了 static 指令。然後我們對 system.string 使用了 static 指令。然後定義一個名為 Features 的命名空間。然後定義一個名為 import 的類別。然後呼叫main方法。然後呼叫 sqrt 方法而不引用數學類,因為 system.math 使用了 using static 指令。然後呼叫 concat 方法而不引用數學類,因為 using static 指令用於 system.string。然後呼叫 writeline 方法而不引用數學類,因為 using static 指令用於 system.console。程式的輸出如上面的快照所示。

範例#2

C# 程式示範在程式中使用 static 指令的用法

代碼:

using System;
//using static directive for system.console
using static System.Console;
//using static directive for system.string
using static System.String;
//a class called check is defined
class check
{
//main method is called
public static void Main(string[] args)
{
//the writeline method is called without referencing math class because using static directive is used for system.console
WriteLine("Check if the given number is positive or negative or zero:");
//a variable number is defined
int number = 10;
//Comparison operator is used to check if the number is greater than zero
if (number > 0)
//the writeline method is called without referencing math class because using static directive is used for system.console
WriteLine("Positive number");
//Comparison operator is used to check if the number is equal to zero
else if (number == 0)
//the writeline method is called without referencing math class because using static directive is used for system.console
WriteLine("Zero");
else
//the writeline method is called without referencing math class because using static directive is used for system.console
WriteLine("Negative number");
}
}

輸出:

C# 使用靜態

在上面的程式中,我們為 system.console 使用了 static 指令。然後我們對 system.string 使用了 static 指令。然後定義一個名為check的類別。然後呼叫main方法。然後呼叫 writeline 方法而不引用數學類,因為 using static 指令用於 system.console。然後定義一個變數編號,該編號被指派給該編號,需要檢查該編號是正數、負數或零。然後使用比較運算子檢查數字是否大於零、小於零或等於零。程式的輸出如上面的快照所示。

C# 使用靜態的優點

有以下幾個優點:

  • 如果類別的成員被設為靜態,則該靜態成員不必依賴該類別的任何實例。如果未聲明為靜態,則這可以避免在呼叫成員時建立類別的新實例。這再次需要垃圾收集,這是可以避免的。
  • 使用靜態指令可以更輕鬆地實作實用方法,例如傳送電子郵件、記錄錯誤、從 Web 配置取得值等。
  • 使用靜態指令時記憶體使用量較少,因為靜態方法是共享的。

結論

在本教程中,我們透過定義了解在 C# 中使用 static 指令的概念、在 C# 中使用 static 指令的語法、透過程式設計範例及其輸出來了解使用 static 指令的工作原理。

以上是C# 使用靜態的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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