最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中 nameof 和 ToString () 的用法與區(qū)別解析

 更新時間:2025年06月18日 16:36:29   作者:code bean  
在 C# 編程過程中,nameof運算符和ToString()方法是開發(fā)者經常會用到的功能,本文將通過具體的代碼示例,詳細介紹nameof和枚舉結合的用法,以及nameof與ToString()之間的區(qū)別,感興趣的朋友一起看看吧

在 C# 編程過程中,nameof運算符和ToString()方法是開發(fā)者經常會用到的功能。雖然它們都能返回字符串,但在實際使用場景、工作機制等方面存在明顯差異。本文將通過具體的代碼示例,詳細介紹nameof和枚舉結合的用法,以及nameof與ToString()之間的區(qū)別。

?? 一、C# 中 nameof 加一個枚舉的含義

nameof是 C# 中的運算符,在編譯時獲取變量、類型或者成員的名稱,并以字符串形式呈現(xiàn)。當它與枚舉結合使用時,返回的是枚舉成員的名稱,而非該成員對應的值 。
假設我們定義了如下枚舉類型:

enum Color
{
    Red,
    Green,
    Blue
}

通過以下代碼,可以直觀地看到nameof與枚舉結合使用的效果:

Color myColor = Color.Green;
string name = nameof(myColor);        // 得到 "myColor",也就是變量的名稱
string memberName = nameof(Color.Blue); // 得到 "Blue",即枚舉成員的名稱

在實際應用中,nameof與枚舉結合常用于日志記錄和參數(shù)驗證。比如在日志記錄時:
Log($“當前顏色: {nameof(Color.Red)}”); // 日志會顯示 “當前顏色: Red”

在參數(shù)驗證場景下:

void SetColor(Color color)
{
    if (color == Color.Red)
    {
        throw new ArgumentException("不支持紅色", nameof(color)); // 參數(shù)名會顯示 "color"
    }
}

需要注意的是,nameof(Color.Green) 這種寫法,是直接引用枚舉類型中的成員,返回的是該成員在代碼里的名稱;若想獲取枚舉實例所對應的成員名稱,可采用 ToString() 方法,如string colorName = myColor.ToString(); ,此時得到的結果是 “Green” 。

?? 二、nameof () 和 ToString () 的區(qū)別

  • ?? 功能不同
    nameof:在編譯時獲取代碼中變量、類型或成員的名稱(即源代碼中的標識符)。
    ToString():在運行時返回對象的字符串表示形式(通常是對象的值或自定義格式)。
  • ?? 返回值不同
    通過以下代碼示例,可以清晰看到二者返回值的差異:
enum Color { Red, Green, Blue }
Color myColor = Color.Green;
string a = nameof(myColor);        // 返回變量名:"myColor"
string b = nameof(Color.Blue);     // 返回枚舉成員名:"Blue"
string c = myColor.ToString();     // 返回枚舉值的名稱:"Green"
string d = 42.ToString();          // 返回數(shù)值的字符串形式:"42"

可以總結成如下表格:

  • ?? 應用場景不同
    nameof 的典型場景
    參數(shù)驗證(在異常中顯示參數(shù)名):
void SetColor(Color color) {
    if (color == Color.Red) {
        throw new ArgumentException("無效顏色", nameof(color)); // 顯示參數(shù)名 "color"
    }
}

日志記錄 / 調試(記錄代碼元素名稱):
Log($“初始化 {nameof(Color)} 枚舉”); // 日志:“初始化 Color 枚舉”

ToString() 的典型場景
獲取對象值的文本表示:
Console.WriteLine(myColor.ToString()); // 輸出:“Green”

自定義格式化(重寫 ToString() 方法):

class Person {
    public string Name { get; set; }
    public override string ToString() => $"Person: {Name}";
}

var person = new Person { Name = "Alice" };
Console.WriteLine(person.ToString()); // 輸出:"Person: Alice"

?? 技術細節(jié)差異

?? 總結

在 C# 編程中,nameof和ToString()有著各自獨特的作用。nameof常用于獲取代碼中的元素名稱,如變量名、類型名、屬性名;而ToString()則側重于獲取對象值或內容的字符串表示。理解并正確使用這兩個功能,能夠幫助開發(fā)者編寫出更清晰、健壯的代碼。如果你在實際開發(fā)中還有其他關于 C# 的疑問,歡迎在評論區(qū)交流分享。

到此這篇關于 C#中 nameof 和 ToString () 的用法與區(qū)別解析的文章就介紹到這了,更多相關C# nameof 和 ToString ()用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C#實現(xiàn)上位機的遠程監(jiān)控與控制的詳細步驟

    C#實現(xiàn)上位機的遠程監(jiān)控與控制的詳細步驟

    隨著工業(yè)自動化、物聯(lián)網(wǎng)以及智能控制系統(tǒng)的普及,遠程監(jiān)控與控制逐漸成為了許多系統(tǒng)的核心需求,上位機作為控制與監(jiān)測系統(tǒng)的核心,常用于接收處理來自下位機的數(shù)據(jù)并進行控制操作,C#作為一門高效且功能強大的編程語言,本文將探討如何使用C#實現(xiàn)上位機遠程監(jiān)控與控制
    2025-01-01
  • java 文件下載支持中文名稱的實例

    java 文件下載支持中文名稱的實例

    下面小編就為大家分享一篇java 文件下載支持中文名稱的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • 基于WPF實現(xiàn)代碼查看器控件

    基于WPF實現(xiàn)代碼查看器控件

    這篇文章主要為大家詳細介紹了WPF如何實現(xiàn)代碼查看器控件,文中的示例代碼講解詳細,對我們學習或工作有一定幫助,感興趣的小伙伴可以了解一下
    2022-11-11
  • C#中反射和擴展方法如何運用

    C#中反射和擴展方法如何運用

    這篇文章主要為大家詳細介紹了C#中反射和擴展方法的運用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • WinForm窗體間傳值的方法

    WinForm窗體間傳值的方法

    這篇文章主要介紹了WinForm窗體間傳值的方法,包括了靜態(tài)變量、公共變量、共有屬性等方式,是非常實用的技巧,需要的朋友可以參考下
    2014-11-11
  • C#實現(xiàn)帶消息數(shù)的App圖標

    C#實現(xiàn)帶消息數(shù)的App圖標

    這篇文章主要介紹了如何使用C#實現(xiàn)帶消息數(shù)的App圖標的方法,并附上全部源碼,分享給大家,有需要的小伙伴可以參考下。
    2015-12-12
  • C#開發(fā)webService接口的流程步驟

    C#開發(fā)webService接口的流程步驟

    在C#中,Web Service 接口是一種用于遠程程序間的通信機制,它允許客戶端通過HTTP協(xié)議訪問服務器端提供的功能和服務,本文給大家詳細介紹了C#開發(fā)webService接口的流程步驟,需要的朋友可以參考下
    2024-11-11
  • 基于C#實現(xiàn)手機號碼歸屬地接口調用

    基于C#實現(xiàn)手機號碼歸屬地接口調用

    這篇文章主要介紹了基于C#實現(xiàn)手機號碼歸屬地接口調用的相關資料,需要的朋友可以參考下
    2016-02-02
  • C#運算符大全_各種運算符號的概述及作用

    C#運算符大全_各種運算符號的概述及作用

    以下是對C#中各種運算符號的說明及作用進行了詳細的總結介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • C#設置PDF表單不可編輯以及提取表單數(shù)據(jù)的操作

    C#設置PDF表單不可編輯以及提取表單數(shù)據(jù)的操作

    PDF表單是PDF中的可編輯區(qū)域,允許用戶填寫指定信息,當表單填寫完成后,有時候我們可能需要將其設置為不可編輯,以保護表單內容的完整性和可靠性,本文將給大家介紹C#設置PDF表單不可編輯以及提取表單數(shù)據(jù)的操作,需要的朋友可以參考下
    2024-06-06

最新評論

南充市| 眉山市| 大竹县| 沁源县| 繁峙县| 宁南县| 通州市| 香格里拉县| 井陉县| 芒康县| 巴林右旗| 黑山县| 武城县| 舒城县| 城口县| 平陆县| 瑞金市| 蓝山县| 六盘水市| 新泰市| 和田市| 宽城| 郓城县| 罗城| 湘潭县| 星座| 定边县| 富裕县| 博野县| 林芝县| 邯郸市| 灵台县| 开远市| 大埔县| 区。| 亳州市| 闻喜县| 萨嘎县| 剑河县| 湘潭县| 克拉玛依市|