欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

enum Color
{
    Red,
    Green,
    Blue
}

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

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

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

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

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

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

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

  • ?? 功能不同
    nameof:在編譯時獲取代碼中變量、類型或成員的名稱(即源代碼中的標(biāo)識符)。
    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"

可以總結(jié)成如下表格:

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

日志記錄 / 調(diào)試(記錄代碼元素名稱):
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"

?? 技術(shù)細(xì)節(jié)差異

?? 總結(jié)

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

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

相關(guān)文章

  • .NET使用C#實現(xiàn)將Word文檔轉(zhuǎn)換為HTML格式

    .NET使用C#實現(xiàn)將Word文檔轉(zhuǎn)換為HTML格式

    這篇文章主要為大家詳細(xì)介紹了如何在.NET平臺使用C#將Word文檔轉(zhuǎn)換為HTML文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-01-01
  • C#調(diào)用C++的dll兩種實現(xiàn)方式(托管與非托管)

    C#調(diào)用C++的dll兩種實現(xiàn)方式(托管與非托管)

    這篇文章主要介紹了C#調(diào)用C++的dll兩種實現(xiàn)方式(托管與非托管),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C#常用目錄文件操作類實例

    C#常用目錄文件操作類實例

    這篇文章主要介紹了C#常用目錄文件操作類,實例分析了C#針對目錄的讀取、檢測及查找等相關(guān)操作技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • C#11新特性使用案例詳解

    C#11新特性使用案例詳解

    這篇文章主要為大家介紹了C#11新特性的使用案例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • C# 文件拖拽和pixturBox縮放與拖拽功能

    C# 文件拖拽和pixturBox縮放與拖拽功能

    這篇文章主要介紹了C# 文件拖拽和pixturBox縮放與拖拽功能,代碼簡單易懂,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2017-10-10
  • webBrowser執(zhí)行js的方法,并返回值,c#后臺取值的實現(xiàn)

    webBrowser執(zhí)行js的方法,并返回值,c#后臺取值的實現(xiàn)

    下面小編就為大家?guī)硪黄獁ebBrowser執(zhí)行js的方法,并返回值,c#后臺取值的實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • C#實戰(zhàn)之備忘錄的制作詳解

    C#實戰(zhàn)之備忘錄的制作詳解

    這篇文章主要為大家介紹了如何利用C#制作一個備忘錄,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-02-02
  • C#客戶端程序Visual Studio遠(yuǎn)程調(diào)試的方法詳解

    C#客戶端程序Visual Studio遠(yuǎn)程調(diào)試的方法詳解

    這篇文章主要給大家介紹了關(guān)于C#客戶端程序Visual Studio遠(yuǎn)程調(diào)試的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • C#實現(xiàn)Windows服務(wù)測試與調(diào)試

    C#實現(xiàn)Windows服務(wù)測試與調(diào)試

    這篇文章介紹了C#實現(xiàn)Windows服務(wù)測試與調(diào)試的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • WinForm實現(xiàn)的圖片拖拽與縮放功能示例

    WinForm實現(xiàn)的圖片拖拽與縮放功能示例

    這篇文章主要介紹了WinForm實現(xiàn)的圖片拖拽與縮放功能,結(jié)合具體實例形式分析了WinForm鼠標(biāo)事件響應(yīng)及圖片元素動態(tài)操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-05-05

最新評論