问题标签 [nameof]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 没有指定类型的 C# 泛型类型名称
假设我有类型
在代码的某处,我想抛出与该类型的错误使用相关的异常:
到目前为止,一切都很好,但我不想硬编码类名,所以我想我可以使用
相反,但在这种情况下,我不知道确切的类型T
。所以我想也许我可以用 C++ 中的模板专业化来做到这一点:
或者
但那些产量
类型参数的数量不正确。
和
缺少类型参数。
我绝对不想硬编码类名,因为它可能会在以后更改。我怎样才能得到班级的名字,最好是通过nameof
?
理想情况下,我想要实现的是"Cannot use A<T> like that."
or "Cannot use A like that."
。
c# - 在编译时获取类的属性名称,无需对象实例化
是否可以在编译时获取类属性的名称(注意!)而无需对象实例化?
通过实例化,可以使用 nameof() 轻松完成:
c# - 为什么成员访问修饰符对 nameof() 很重要?
我对运营商有点困惑nameof()
。因此,例如我不能nameof()
在另一个类中使用类的私有字段,但我可以使用非静态属性public
使用非static
字段,所以我不需要实例化对象。
是否始终如一?为什么成员访问修饰符对 nameof() 很重要?
c# - How do I make MonoDevelop recognize nameof syntax from C# 6.0?
I'm in MonoDevelop v5.9.6. Although it seems to support C# 6.0, the editor doesn't recognize the nameof
keyword, and it marks it red, because it tries to recognize it as if it were an identifier.
Is there any hack I can use to make it work in the editor, without breaking the compilation somehow?
c# - 为什么编译器在使用这个 hack 时没有给出任何错误或警告?
在我的另一个问题中,我发现了一个使此语法在 MonoDevelop 编辑器中工作的技巧:
C# 编译器(Mono 和 VS)不会给出任何警告或错误,并且nameof
关键字的使用也正常工作。我的问题是为什么。
c# - 是否可以使用反射检索属性的变量名(不是值)?
我正在尝试检索属性的变量名称,而不是值。我目前正在使用反射,但如果有人有其他建议,将不胜感激。
我涉及三个课程
A:
乙:
C:
我希望objName 返回字符串“bObject.number”,这是在属性内调用的变量。我目前的设置是否可以这样做,如果没有,是否有人有建议?
我宁愿在 B 中没有另一种方法来返回“nameof(bObject) + nameof(bObject.number)”,然后由于冗余而调用该方法和道具。谢谢你的时间。
c# - C# 将 nameof() 值作为变量返回
我想使用 nameof() 来获取变量名,以便稍后在 Undo/Redo 方法中使用它。在我的具体情况下,我有 2 个不同的类,我想使用 Undo/Redo 功能。
我的第一个想法是以某种格式将更改推送到堆栈。但是,我可以在代码本身中使用它吗?下面的代码可能吗?
c# - 在 Devexpress Gridcontrol 绑定中使用 nameof 指定 FieldName
我在我的应用程序中使用 Devexpress Gridcontrol,它正在以相当快的速度开发,随着需求变得更加清晰/发展,这通常涉及重构、更改属性名称等。
由于属性名称被硬编码到form.designer.cs
文件中的字符串中,因此很难通过重构来获取。我使用 Resharper,我知道您可以选择该框以在字符串文字中进行搜索,但是当文本在我的项目中以不相关的字符串文字出现数百次时Description
,Manufacturer
因此实施这种方式将非常耗时,坦率地说是浪费的时间。
使用nameof
运算符提供了明确指定字段名称之间的桥梁,同时还为重构提供了开箱即用的支持。
从我的设计器文件中获取这个片段。
如果我将FieldName
属性替换为
但是现在我无法打开此表单的设计器,错误代码'设计器无法nameof
在第 125 行处理未知名称。方法 InitializeComponent 中的代码由设计器生成,不应手动修改。
有什么方法可以为 Devexpress 字段名称使用 nameof 表达式?
c# - 多级属性的 nameof() 运算符
以下表达式的 nameof() 等效项是什么:
c# - 空检查多个参数并以其名称引发异常
我想验证多个参数并抛出一个ArgumentNullException
如果它们中的任何一个是null
. 为了争论,让我们假设我有这个:
当然,我可以这样做:
但这并不是特别漂亮,特别是如果它是整个应用程序中的重复签入。所以,我想我会这样做:
但是这样我就输了nameof
。我不能这样做nameof(subject)
,因为那毫无意义。
当然,这是一个选项:
但它似乎容易出错,重复的参数......而且,老实说,只是不漂亮。
有这样做的好方法吗?理想情况下不使用任何外部库。