nameof 的目的是什么?

2023-12-01

6.0版本新增了一个功能nameof,但我无法理解它的目的,因为它只是获取变量名称并在编译时将其更改为字符串。

我认为它在使用时可能有一些目的<T>但当我尝试nameof(T)它只是打印给我一个T而不是使用的类型。

对目的有什么想法吗?


如果您想要重用属性名称,例如根据属性名称引发异常或处理PropertyChanged事件。在很多情况下,您都希望获得财产的名称。

举个例子:

switch (e.PropertyName)
{
    case nameof(SomeProperty):
    { break; }

    // opposed to
    case "SomeOtherProperty":
    { break; }
}

第一种情况,重命名SomeProperty如果您不更改属性定义和nameof(SomeProperty)表达。对于第二种情况,重命名SomeOtherProperty或改变"SomeOtherProperty"string 将导致运行时行为悄无声息地破坏,在构建时不会出现错误或警告。

这是保持代码编译和无错误(某种程度)的非常有用的方法。

(A 埃里克·利珀特的非常好的文章 why infoof没成功,同时nameof did)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nameof 的目的是什么? 的相关文章

  • 是否有可能将 *.pdb 文件包含到发布版本中以查看错误行号?

    我做了一个项目 所有设置都是默认的 当我在调试模式 构建配置 调试 下运行它并遇到异常时 它转储到我的自定义日志记录机制 其中包含错误行号 但是当我运行发布构建时 记录相同的异常 没有行号 只有方法抛出和记录调用堆栈 是否有可能在发布配置
  • 当 foreach 块的内容具有 Conditional 属性时,C# 编译器是否会对其进行优化?

    我正在工作中编写一些调试代码 我想知道我所做的是否会损害性能 让我们看一下代码 foreach var item in aCollection Debug WriteLine item Name 我知道 Debug 类使用 Conditio
  • ASMX Web 服务,测试表单仅在本地计算机上适用于一种 WebMethod

    我有一个正在测试的 ASMX WebService 并且在大多数方法上我都可以使用测试表单进行测试 然而 我确实有一种方法 测试表上写着 The test form is only available for requests from t
  • 如何部署包含第三方 DLL 文件的 C# 应用程序?

    首先 我对部署了解不多 我希望我的问题有意义 我需要将 C 应用程序安装 部署到多个桌面 它需要一个第三方 DLL 文件 一个 C 库 lpsolve55 dll 对于那些感兴趣的人 它是一个免费的 MIP LP 求解器 请参阅 lpsol
  • 如何从 C# 调用 F# 类型扩展(静态成员函数)

    FSharp 代码的结构如下 我无法控制源代码 namespace FS
  • AcceptSocket 超时?

    是否有可能AcceptSocket on a TcpListener具有超时的对象 以便它偶尔被中断 TcpListener server new TcpListener localIP port server Start while sh
  • PartialView Action 正在调用自身

    我有 MVC 应用程序 它用于从主视图 ProductMaster 将 ProductAreaGrid 列表显示为 PartialView 并且它将在局部视图内将 CreateProductArea 作为 PartialView 我的 Gr
  • 根据 Active Directory 策略检查密码[重复]

    这个问题在这里已经有答案了 我有一个允许用户更改其 AD 密码的前端 有没有办法获取特定用户及其属性 长度 复杂性 的密码策略 例如细粒度 有没有办法根据此特定策略检查字符串 xyz121 编辑 我不想检查活动目录中存储的当前密码 我想检查
  • 重定向 std::cout

    我需要一个类 在其对象的生命周期内将一个 ostream 重定向到另一个 ostream 经过一番修补后 我想出了这个 include
  • 文件加密与解密问题

    我一直在尝试在 VC Express 2010 中加密和解密文件 我见过的所有教程和文档都需要两个FileStreams 来加密文件 一个用于读取未加密的版本 另一个用于加密 当我实际编写代码时 它不断抛出错误 告诉我它无法打开该文件 因为
  • 这些工作队列标志意味着什么?

    在研究工作队列时 我遇到了内核中定义的工作队列标志和常量 我有以下我无法理解的疑问 这里的排水和救援到底是什么意思 WQ DRAINING 1 lt lt 6 internal workqueue is draining WQ RESCUE
  • 如果项目包含多个文件夹,如何使用 Add-Migration

    我想Add Migration使用我的 DbContext 但出现错误 The term add migration is not recognized as the name of a cmdlet function script fil
  • 检测笔记本电脑盖子的关闭和打开

    是否可以检测笔记本电脑的盖子何时打开或关闭 从我读到的内容来看 这是不可能的 但 SO 之前已经帮助我完成了不可能的任务 我发现唯一可能朝着正确方向的事情是关于报告电源按钮所需的 IOCTL 的 MSDN 博客文章 https learn
  • 使用联合对 IP 地址进行多种解释?

    在工作中 我们使用以下构造来将 IP 地址解释为 4 字节数组或 32 位整数 union IPv4 std uint32 t ip std uint8 t data 4 这很好用 但是读完这本书的第 97 章 不要使用联合来重新解释表示
  • Code::Blocks 中的调试似乎不起作用 - 缺少调试符号

    我正在尝试在 Code Blocks 中调试程序 我跟着本指南 http wiki codeblocks org index php title Debugging with Code Blocks and 这个短视频 http www y
  • 模板定义中的友元函数

    我的问题有点相关this https stackoverflow com questions 1297609 overloading friend operator for template class one 我想重载某些类的运算符 te
  • 使用 WinAPI 连接禁用的显示设备

    我的问题是启用禁用的监视器ChangeDisplaySettingsEx 我想这不是火箭科学 但经过一番挖掘后 它看起来仍然是不可能的 我找到了一种根据找到的 Microsoft 代码示例禁用所有辅助显示器的方法here https msd
  • 如何使 WinForms UserControl 填充其容器的大小

    我正在尝试创建一个多布局主屏幕应用程序 我在顶部有一些按钮链接到应用程序的主要部分 例如模型中每个实体的管理窗口 单击这些按钮中的任何一个都会在面板中显示关联的用户控件 面板包含用户控件 而用户控件又包含用户界面 WinForms User
  • 使用方法的状态模式

    我正在尝试使用方法作为状态而不是类来基于状态模式的修改版本来实现一个简单的状态机 如下所示 private Action
  • 如何获取运行或段落的高度

    我找到了Run or Paragraph in FlowDocument现在我需要知道HEIGHT of it i e while navigator CompareTo flowDocViewer Document ContentEnd

随机推荐

  • 如何获取所有用户所有公共仓库中Github的实时推送事件?

    我看过GET events但它返回所有事件 而不仅仅是我感兴趣的推送事件 我读过有关 webhooks 的内容pushEvent特别是 但可以配置为仅存储库 以便在推送到该存储库时收到通知 但我希望获得来自所有用户的所有公共存储库中的所有推
  • WebBrowser 控件 WPF 中的脚本错误

    当我使用 wpf 处理 webBrowser 控件时出现 脚本错误 之类的错误 即使我在这里粘贴了屏幕截图 甚至一些 jquery UI 和 css 也不起作用 我也面临这个问题 我需要创建浏览器应用程序 网络上有很多 Jquery JSO
  • 为什么bottom:0 不能与position:sticky 一起使用?

    我试图了解 css 粘性 的作用 我可以让它粘在其父级的 顶部 但还没有到 底部 我的测试代码是 block background pink width 50 height 200px move position sticky bottom
  • 使用 XSD 文件生成 XML 文件

    如何从 XSD 文件生成 XML 文件 假设我们有 Test xsd 文件 如下所示
  • 未捕获的类型错误:elem.nodeName.toLowerCase 不是函数 Jquery

    我正在开发一个项目 该项目运行良好 但今天突然显示类型错误 未捕获的类型错误 elem nodeName toLowerCase 不是函数 Jquery 下面是我收到错误的代码 A method for determining if a D
  • 如何点击更改模型的颜色,然后将其改回原来的颜色?

    我正在尝试在 ARKit 中创建一个功能 如果用户点击 modelEntity 它的颜色就会更改为蓝色 这样就表明它已被选中 但是 如果用户点击另一个实体 则先前选择的实体的材质会变回选择之前的状态 所以我可以用这段代码改变它的颜色 let
  • boost RNG 的线程安全

    我有一个循环 应该通过插入一个 openmp pragma 来很好地并行化 boost normal distribution
  • MATLAB - 从 jpeg_write.c 创建 maxmaci64 时出错

    我在使用来自 jpeg 工具箱的 jpeg read c 和 jpeg write c 的 Mex 制作 mexmaci64 文件时遇到问题 我问了我的问题herejpeg read 的问题解决了 但当我编译jpeg write c时仍然有
  • 如何使用jquery Ajax函数在IE浏览器中读取xml数据

    我需要在 AJAX 函数中使用 jquery 读取 xml 数据 这在 firefox 中工作正常 但是我被 IE 浏览器困住了 我无法读取 xml 程序需要从 xml 文件中读取 proptype 我有放置警报警报 theXml 但在 I
  • 如何在循环中使用 writeHexByte 显示到屏幕上?

    我在启动时显示了 displayChar 字符 现在我如何添加 writeHexBytes 然后在循环中使用 writeHexByte 和 writeHexWord 在屏幕上显示 写入十六进制字节 需要一个 8 位寄存器 通过调用显示它 转
  • Java:查找文件的最后一行是否为空

    我有一个关于需要用 Java 完成的学校作业的问题 我需要从文件加载数据并检查这些文件中的错误 我用 a 读取了该文件bufferedReader它完美地工作到文件末尾 如果最后一行为空 它会忽略该行 我知道如何检查空行 但最后一行根本没有
  • 运行循环实际上是如何工作的

    这个月初我问了这个问题 什么是运行循环 在阅读了答案并做了一些尝试后 我让它工作了 但我仍然不完全理解它 如果运行循环只是与线程关联的循环 并且它不会在幕后生成另一个线程 那么我的线程 主线程以保持简单 中的任何其他代码如何执行而不会被 阻
  • 如何在 Spring Jms Tibjms 中在多个虚拟机之间共享发布在主题上的消息

    我的应用程序正在使用发布到主题的消息 我有 3 台服务器 我的应用程序代码正在运行 在当前的实现中 消息被分发到所有正在运行的虚拟机 即每个消费者都会收到消息的副本 我的要求是每个消费者都应该收到不同的消息 即没有两个消费者应该收到相同的消
  • 在 CSS3/HTML5 中使用自定义字体?

    我的 CSS 样式表开头有这段代码 当然链接到我的 index html font face font family Calibri src local Calibri local Calibri url fonts Calibri Bol
  • React Router 默认路由重定向到 /home

    我对反应以及我选择使用的路由器和引导程序库非常陌生 它们基本上只是react router bootstrap 我只是对事物有了一些感觉 我想制作一个具有一些基本 url 导航的网络应用程序 我有 4 个部分 主页浏览添加和关于 单击链接效
  • 将 PDF 转换为 PNG

    我正在尝试将 PDF 转换为 PNG 图像 至少是一个封面 我已经使用 pdftk 成功提取了 PDF 的第一页 我正在使用 imagemagick 进行转换 convert cover pdf cover png 这是可行的 但不幸的是
  • 在 Swift 中逐像素地对图像应用视觉效果

    我的大学任务是创建视觉效果并将其应用于通过设备摄像头捕获的视频帧 我目前可以获取图像并显示 但无法更改像素颜色值 我将示例缓冲区转换为 imageRef 变量 如果将其转换为 UIImage 一切正常 但现在我想将 imageRef 逐像素
  • Mapbox GL 3D 单体建筑高光选择

    如何将鼠标悬停在一个 3D 建筑物上时突出显示它 OSM 建筑之类的东西突出了特色 看来mapbox street v7的建筑图层要素属性太少了 只包括 拉伸 高度 最小高度 类型 地下 没有任何独特的属性来区分这座建筑 有没有办法包含建筑
  • 如何运行Python CGI脚本

    我以前从未设置过服务器 更不用说Python服务器了 我有点迷失了 我如何使用以下代码 我尝试将其放入 cgi bin 目录中 但没有成功 它返回了内部服务器错误 看看这个here usr bin env python Funf Open
  • nameof 的目的是什么?

    6 0版本新增了一个功能nameof 但我无法理解它的目的 因为它只是获取变量名称并在编译时将其更改为字符串 我认为它在使用时可能有一些目的