LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# 中 Nameof 用法詳解

admin
2024年4月9日 23:18 本文熱度 754


概述:你有沒(méi)有覺(jué)得自己被困在一個(gè)由字符串和魔法代碼組成的迷宮中?不用再害怕了,C# 的運(yùn)算符隨時(shí)可以成為您的指南針!男孩,我們是否有一種讓你大吃一驚的編程思維——運(yùn)算符,這是 C# 的一個(gè)經(jīng)常被忽視的功能。系好安全帶,解開(kāi) C# 的謎團(tuán)!介紹開(kāi)發(fā)者世界大家好!在我們一頭扎進(jìn)問(wèn)題的癥結(jié)之前,讓我們先把舞臺(tái)擺好。簡(jiǎn)要的 101 關(guān)于這意味著什么以及為什么它是您絕對(duì)應(yīng)該知道的事情。nameof關(guān)于 C# 語(yǔ)言及其功能C# 以其穩(wěn)健性和多功能性而聞名,擁有一系列強(qiáng)大的功能,使其成為開(kāi)發(fā)各種應(yīng)用程序的頂級(jí)語(yǔ)言。面向?qū)ο笤鰪?qiáng)型式安全性通用和動(dòng)態(tài)功能廣泛的類庫(kù)這些功能不是很酷嗎?但是等到你聽(tīng)說(shuō)!nameof“na

你有沒(méi)有覺(jué)得自己被困在一個(gè)由字符串和魔法代碼組成的迷宮中?不用再害怕了,C# 的運(yùn)算符隨時(shí)可以成為您的指南針!男孩,我們是否有一種讓你大吃一驚的編程思維——運(yùn)算符,這是 C# 的一個(gè)經(jīng)常被忽視的功能。系好安全帶,解開(kāi) C# 的謎團(tuán)!

介紹

開(kāi)發(fā)者世界大家好!在我們一頭扎進(jìn)問(wèn)題的癥結(jié)之前,讓我們先把舞臺(tái)擺好。簡(jiǎn)要的 101 關(guān)于這意味著什么以及為什么它是您絕對(duì)應(yīng)該知道的事情。nameof

關(guān)于 C# 語(yǔ)言及其功能

C# 以其穩(wěn)健性和多功能性而聞名,擁有一系列強(qiáng)大的功能,使其成為開(kāi)發(fā)各種應(yīng)用程序的頂級(jí)語(yǔ)言。

  • 面向?qū)ο?/p>

  • 增強(qiáng)型式安全性

  • 通用和動(dòng)態(tài)功能

  • 廣泛的類庫(kù)

這些功能不是很酷嗎?但是等到你聽(tīng)說(shuō)!nameof

“nameof”概念概述

操作員,一條鬼鬼祟祟的蛇,經(jīng)常在最有經(jīng)驗(yàn)的程序員知識(shí)的表面下滑行。簡(jiǎn)而言之,它是一個(gè)以字符串格式按原樣返回代碼元素名稱的工具。感興趣?等一下,我們只是在熱身!nameof

在 C 語(yǔ)言中使用 Nameof 入門#

在你提高你的技能之前,讓我們讓你裝備和準(zhǔn)備!nameof

了解語(yǔ)法

的語(yǔ)法很簡(jiǎn)單;在關(guān)鍵字和 BOOM 之后插入代碼元素:以字符串形式獲得其名稱。這是一個(gè)預(yù)告片:nameofnameof

string name = nameof(System.String);  
Console.WriteLine(name);  // Output: "String"

設(shè)置開(kāi)發(fā)環(huán)境

作為先決條件,任何支持 C# 6 及更高版本的開(kāi)發(fā)環(huán)境都可以使用,正如 C# 6 中引入的那樣。一些受歡迎的選項(xiàng)包括:nameof

  • Visual Studio的

  • JetBrains 騎士

  • 單開(kāi)發(fā)

那好吧!準(zhǔn)備好 Edgar Allan 編碼員了嗎?讓我們解開(kāi)這個(gè)謎團(tuán)吧!

Nameof 在 C 中的功能#

有沒(méi)有試過(guò)向某人描述彩虹?“Nameof”是一個(gè)類似的悖論。它很簡(jiǎn)單,但又如此強(qiáng)大和有用,以至于它讓你想知道沒(méi)有它你是如何生活的。

C語(yǔ)言中的名字是什么#

Nameof– 一個(gè)在代碼和字符串的魔力之間起中介作用的關(guān)鍵字,所有這些都是為了使您的代碼流暢。相信我,一旦你掌握了它的竅門,你就會(huì)想知道沒(méi)有它你是怎么過(guò)的!

C 語(yǔ)言中“nameof”的由來(lái)#

在 C# 6 中引入,有點(diǎn)像流行樂(lè)隊(duì)的第 6 名成員,鮮為人知,但無(wú)疑很有吸引力!nameof

nameof的基本定義和作用

Nameof是一個(gè)運(yùn)算符,用于獲取代碼元素(如變量、類和方法等)的名稱(是的,字符串)。它通過(guò)將名稱作為字符串文字返回來(lái)幫助您密切關(guān)注名稱!

int myInt = 10;  
Console.WriteLine(nameof(myInt));  // Output: "myInt"

這段代碼只是將變量的名稱輸出為字符串,不是很方便嗎?

nameof 在 C 中有什么作用#

Nameof讓你在字符串和硬編碼的常量中保持理智,但有什么大的喧囂呢?

如何使用 nameof 使代碼更健壯、更易于管理

想象一下,你必須瀏覽數(shù)百行代碼,而你總是看到“神奇的字符串”。你怎么記得什么是什么?進(jìn)入超級(jí)英雄!通過(guò)使用 ,您的代碼將變得更可讀且對(duì)重構(gòu)更友好。錯(cuò)誤減少,開(kāi)發(fā)人員幸福感增加,這是雙贏的!nameofnameof

現(xiàn)實(shí)生活中的例子:使用

想象一下以下場(chǎng)景:您正在編寫一個(gè)汽車系統(tǒng),并且是代碼中的秘密成分。看一看:nameof

public class Car  
{  
   public string Brand { get; set; }  
   public string Model { get; set; }  
public void CheckDetails()  
   {  
       throw new ArgumentException($"Property {nameof(Brand)} cannot be null");  
   }  
}

如果未設(shè)置該屬性,則此示例將引發(fā)異常。使用 ,從長(zhǎng)遠(yuǎn)來(lái)看,代碼更具可讀性和可維護(hù)性。Brandnameof

深入了解 C 語(yǔ)言中的 Nameof 運(yùn)算符#

在看到實(shí)際操作之后,讓我們深入研究這個(gè)運(yùn)算符的深度,好嗎?nameof

將 nameof 與其他運(yùn)算符區(qū)分開(kāi)來(lái)

與傳統(tǒng)操作員不同,它不執(zhí)行任何操作。相反,它返回一個(gè)字符串,即您提供給它的任何代碼元素的名稱!簡(jiǎn)單地說(shuō), 不是執(zhí)行的操作員,而是通知的操作員。nameof_nameof_

nameof 如何增強(qiáng)代碼的可維護(hù)性和可讀性

Nameof允許您減少代碼中字符串文本的使用,從而極大地提高代碼的清晰度和可維護(hù)性。打賭你沒(méi)想到這么小的東西能有這么大的沖擊力!

if(string.IsNullOrEmpty(userName))  
{  
    throw new ArgumentException("userName can't be null");  
}

啊!硬編碼字符串,一個(gè)潛在的死亡陷阱。但是,瞧!nameof

if(string.IsNullOrEmpty(userName))  
{  
    throw new ArgumentException($"{nameof(userName)} can't be null");  
}

就這樣,您的代碼非常清晰!

Nameof 在 C 中的實(shí)際用例#

Nameof并不全是樹(shù)皮,也沒(méi)有咬人。讓我們來(lái)看看一些真正閃耀的實(shí)際用例!nameof

將 nameof 與類屬性一起使用

還記得我提到汽車系統(tǒng)的時(shí)候嗎?下面介紹如何使用類屬性為表帶來(lái)價(jià)值。nameof

public class Automobile   
{  
   public string Type { get; set; }  
   public void ValidateType()  
   {  
       if (string.IsNullOrEmpty(Type))  
       {  
           throw new ArgumentNullException($"{nameof(Type)} cannot be null.");  
       }  
   }  
}

將 nameof 與方法參數(shù)一起使用

方法參數(shù)通常需要驗(yàn)證,尤其是在公共 API 方法中。提示,這個(gè)操作員很有沖擊力!nameof

public void SaveUser(string userName)  
{  
   if (string.IsNullOrEmpty(userName))  
   {  
       throw new ArgumentNullException($"{nameof(userName)} cannot be null.");  
   }  
}

在捕獲塊內(nèi)使用 nameof

當(dāng)發(fā)生異常時(shí),可以派上用場(chǎng),生成干凈清晰的錯(cuò)誤消息。nameof

try  
{  
   // Some code  
}  
catch (Exception ex)  
{  
   throw new Exception(  
       $"An error occurred in the {nameof(ProcessData)} method. Message: {ex.Message}");  
}

這樣一來(lái),故障排除就變得輕而易舉了!

常見(jiàn)陷阱和最佳實(shí)踐

當(dāng)你開(kāi)始使用一個(gè)令人興奮的工具時(shí),比如 ,很容易得意忘形。然而,正如超級(jí)英雄粉絲所說(shuō),能力越大,責(zé)任越大!因此,在編碼時(shí)必須小心避免誤用。在這里,我們將討論一些常見(jiàn)的陷阱,以及一些可以指導(dǎo)我們?nèi)绾巫钣行У厥褂玫淖罴褜?shí)踐。nameofnameofnameof

濫用 nameof 以及如何避免它

首先,請(qǐng)記住,這不是替換所有字符串文字的魔杖。當(dāng)然,它提供了一種輕量級(jí)機(jī)制來(lái)獲取代碼可見(jiàn)的任何符號(hào)的字符串名稱。但是,到處散布會(huì)導(dǎo)致代碼過(guò)于冗長(zhǎng),這反過(guò)來(lái)又可能會(huì)影響可讀性。nameofnameof

讓我們來(lái)說(shuō)明這一點(diǎn)。您可能很想在字符串格式中使用,如下所示:nameof

string name = "John";  
Console.WriteLine($"{nameof(name)} is {name}");  // Output: "name is John"

在此示例中,不提供任何附加值。原始字符串“name”不太可能更改,因此此處沒(méi)有維護(hù)優(yōu)勢(shì)。從可讀性的角度來(lái)看,這種使用可能會(huì)絆倒下一個(gè)閱讀你的代碼的人(甚至是你,未來(lái)的自己!nameofnameof

簡(jiǎn)而言之,當(dāng)您想要避免對(duì)鏡像代碼元素名稱的字符串進(jìn)行硬編碼時(shí),請(qǐng)使用。不要僅僅為了使用它而使用它。nameof

最佳編碼實(shí)踐

現(xiàn)在我們知道了如何不使用 ,讓我們來(lái)看看一些積極的專業(yè)提示!nameof

不要過(guò)度使用它

是的,它是一個(gè)非常有用的運(yùn)算符,但請(qǐng)記住,它不是解決所有編碼問(wèn)題的金錘。過(guò)度使用可能會(huì)讓你的程序員感到困惑或惱火。同樣重要的是要記住,這并不能取代邏輯;它只會(huì)幫助您的代碼“更安全”,防止不可預(yù)見(jiàn)的更改。nameofnameofnameof

使用它來(lái)提高可維護(hù)性

nameof當(dāng)您使用它來(lái)引用可能更改的代碼元素的名稱時(shí),它確實(shí)會(huì)大放異彩。通過(guò)將字符串文本綁定到實(shí)際的代碼元素名稱,可以確保自動(dòng)反映將來(lái)的更改,從而使代碼更易于維護(hù)。讓我們看一個(gè)例子:

public class Person  
{  
   public string Name { get; set; }  
// More members...  
   public void Validate()  
   {  
       if (string.IsNullOrEmpty(Name))  
       {  
           throw new ArgumentException($"{nameof(Name)} cannot be null or empty");  
       }  
   }  
}

在此示例中,屬性的任何重命名都將自動(dòng)反映在異常消息中,從而避免在此過(guò)程中出現(xiàn)潛在的定時(shí)炸彈。Name

一致性是關(guān)鍵

最后,使用 保持一致的使用模式。一致性使您的代碼對(duì)您自己和他人來(lái)說(shuō)更具可讀性和可理解性。始終如一地用于錯(cuò)誤消息、參數(shù)驗(yàn)證或日志記錄目的,很快它將成為您編碼工具箱中不可或缺的工具!


該文章在 2024/4/9 23:18:09 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲中文字幕一区在线播放 | 婷婷久久狠狠五月天 | 一级少妇女片完整版免费 | 亚洲中文字幕不卡专区 | 亚洲春色中文字幕我是洋洋 | 亚洲综合欧美日韩国产一区二区桃 |