首页 > 编程语言 >C# nameof的用法

C# nameof的用法

时间:2022-09-26 12:23:37浏览次数:41  
标签:nameof C# args System 用法 ConsoleColor 字符串 Con

 

最重要的是nameof不会影响性能!

 nameof主要是解决类成员名做参数替代成员们的字符串做参数,如下:

using  System;
  namespace csharp6
 {
     internal class Program
     {
         private static void Main(string[] args)
         {
             if (args==null)
             {
                throw new ArgumentNullException("args");//旧的写法  变量名的字符串做参数
          //throw new ArgumentNullException(nameOf(args));//新的写法  避免了args变量名更改后,忘记更改字符串"args",因为字符串编译器是不错提示错误的

} } } }

有利于项目后期的维护,如果是字符串形式后期改名会很容易遗忘,用nameof就可以很好的解决,直接会报错提醒,最重要的是不会影响性能!

 

nameof需要注意的问题:

nameof可以用于获取具名表达式的当前名字的简单字符串表示:

using static System.Console;
using Con = System.ConsoleColor;

namespace csharp6
{
    internal class Program
    {
        private static void Main()
        {
            WriteLine(nameof(Con));//Con
            WriteLine(nameof(System.ConsoleColor));//ConsoleColor
        }
    }
}

 

第一个语句输出"Con",因为它是当前的名字,那么nameof运算符的结果就是"Con"。

第二个语句输出了"ConsoleColor",因为它是System.ConsoleColor的简单字符串表示,而非取得它的完全限定名,

  如果想取得"System.ConsoleColor",那么请使用 typeof(System.ConsoleColor).FullName

     --学无止境,爱拼才会赢

标签:nameof,C#,args,System,用法,ConsoleColor,字符串,Con
From: https://www.cnblogs.com/xinloverong/p/16730451.html

相关文章

  • oracle数据库用户
    一、系统用户sys和system的区别1、存储的数据的重要性不同【最重要的区别】【sys】所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行......
  • PADS应用笔记:Logic画原理图时设置图业大小
    问题画原理图时默认的图业太小,想换大点怎么办方法在工具->选项界面进入设置界面,在这个界面下进行设置......
  • Linux tcpdump 命令使用详解
    文章目录一、介绍二、基础用法三、进阶用法四、总结和建议一、介绍在日常工作中,我们总是能遇上各种各样奇怪的网络问题,比如我这台机器怎么ping不通了,我的ssh怎么......
  • 2022-09-06 Invalid default value for prop "value": Props with type Object/Array
    前言:父级给子组件传值,子组件接收传递过来的变量报错:Invaliddefaultvalueforprop"value":PropswithtypeObject/Arraymustuseafactoryfunctiontoreturnthe......
  • pdfkit,retry,wordcloud
    pdfkitpipinstallpdfkit#wkhtmltopdf的Python封装包安装wkhtmltopdf并添加至环境变量sudoaptinstallwkhtmltopdfpdfkit用法pdfkit.from_url('http://google......
  • delphi cxSplitter学习笔记
     //cxSplitter禁用移动和拖拽,只允许点击箭头按钮触发缩放(展开和收起)procedureTFraModleBase.cxSplitter3CanResize(Sender:TObject;varNewSize:Integer;varAcc......
  • Blazor中CSS隔离无法用在Masa Blazor组件上
    最近新学了Blazor,使用了MasaBlazor。Blazor的CSS隔离是个很好的东西,如图,只需添加一个与Razor组件同名的CSS文件,这个文件中的CSS样式只会在同名的Razor组件中使用。原理......
  • 我如何在 React 中使用条件渲染
    我如何在React中使用条件渲染如果使用得当,条件渲染是一个非常有用的React概念。您可以根据是否满足某些条件来决定要渲染哪些组件,或者可能完全忽略一个组件。我将举例......
  • React-Native 中关于 useEffect 钩子的完整指南
    React-Native中关于useEffect钩子的完整指南本指南将提供有关react-native中useEffect挂钩的完整信息。同样的概念也可以应用于反应。在React-Native应用程序......
  • vue3中watch和watchEffect的区别
    1、watch需要明确监听哪个属性2、watchEffect会根据其中的属性,自动监听其变化3、watcheffect初始化时,一定会执行一次(收集要监听的数据,不然不知道监听的是什么),watch只有你......