问题标签 [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# Win Forms 应用程序中获取字符串参数的名称?
由于某些原因,我想在我的 C# Win Forms 应用程序中获取一些变量的名称。我使用了以下代码
Textbox1 得到了我想要的确切结果
我的名字=我的价值
但是,当在方法中使用相同的代码时,我得到了不同的结果
我的参数=我的值
我希望能够在 Textbox1 中获得结果,但使用一种方法
c# - 为什么 nameof 对同义词不起作用?
从这个问题中,我了解到nameof()
C# 6.0 中引入的运算符不适用于同义词。所以你可以写nameof(System.Object)
但不能nameof(object)
。
现在,还有另外 2 个类似的运算符,typeof()
和default()
,它们在同义词上完美地工作。你可以写:
也:
结果是一样的。
我猜想也可以构建nameof()
操作符以使用同义词进行操作。
所以问题是:为什么它没有实现与object
, string
,int
等一起使用?我的猜测错了吗(即不可能实现)?或者这是一个设计选择?
c# - Xamarin.Forms - Label.TextProperty.PropertyName 和 nameof(myLabel.Text) 之间的区别
除了语法之外,以下之间是否有任何区别:
和
?
c# - Xamarin.Forms - Button.TextProperty.PropertyName 和 nameof(myButton.Text) 之间的区别
除了语法之外,以下之间是否有任何区别:
和
除了个人偏好之外,是否出于其他任何原因偏好其中一个?
c# - 返回 func<> 委托的具体实现的名称
tl;博士版本:nameof(ToCelsius)
返回ToCelsius
。不过,我想要一些返回底层函数名称的东西ToCelsiusByA
。
因此,我ToCelsius
被分配了一个具体的实现:
然后我调用该ToCelsius
函数:
我想ToCelsiusByA
返回已实现函数 ( ) 的名称,所以我正在尝试这个:
但是,当然,这会在字符串中显示“ToCelsuis”。
c# - 获取foreach中元素引用的名称
我试图让nameof
a 变量通过foreach
循环传递。
而不是得到想要的结果
我显然只是:
这是不允许的吗?更好的方法?
c# - 带铸造的名称
我想使用 nameof 来获取属性的名称。
以下工作:
但这不起作用:
编译错误:
顺便说一句,这也不起作用:
有人可以解释这个铸造+名称问题吗?
swift - 是否有与 C# 的“nameof()”函数等效的 Swift 函数来在编译时获取变量或成员的名称?
好的,这里有一个关于 S/O 的问题,标题如下:
从它的名字来看,这似乎正是我想要的。但是,查看已接受的答案(以及其他未接受的答案),他们指的是关键路径操作,这不是我所追求的。(即这不是重复的!)
就我而言,我希望将一个变量的名称存储在字符串类型的第二个变量中。
在 C# 中,这很简单nameof
,就像这样......
注意:
nameof()
在编译时执行,而不是在运行时执行,因此不需要反射或其他任何东西。编译器只是简单地替换变量的名称,就好像有人手动将其名称键入为字符串常量一样。
例如,当您想要定义一个查询对象时,您的成员名称与 URL 中传递的查询参数相匹配,这非常方便。
这是一个伪代码示例(即,这显然不会编译,但显示了我所追求的。)
另外,请不要专注于 URL 方面。这绝对是*糟糕的代码*。在实际代码中,我会使用URLComponents
,而不是像我在这里做的那样对 URL 进行字符串附加。同样,这*仅*说明了我的问题,而不是构建 URL。
以下是你如何使用它以及它会返回什么:
返回值将是:
访问变量的字符串表示而不是使用字符串常量的优点有很多:
- 没有硬编码的字符串。
- 您可以像往常一样使用符号的重构/重命名和生成的字符串跟踪
- 允许您使 API 和实现保持同步,这有助于提高可读性。
例如,假设 API 将查询参数从 更改userName
为userId
,只需重构变量名称,输出就会相应更新,而无需手动触摸任何字符串。
那么,这可以在 Swift 中完成吗?你能得到实际的变量名并将其存储在第二个变量中吗?
c# - 将具有原始名称的主要方法数组传递给另一个方法
所以我编写了一个简单的代码,将两个不同的数组传递给一个方法,以检查异常。但是有一个问题——当我传递数组时,如果缓存了一个异常,在我的异常“nameof”部分,它并没有说明哪个数组是那个数组,是什么导致了异常。我需要纠正这一点。那么你有什么想法,我怎么能在我的代码中做到这一点?
c# - 为什么这个表达式有效?(C# 6.0)
nameof(ServiceResult<object>.Result)
, ServiceResult<object>
我的自定义类型在哪里,是Result
这种类型的字段。ServiceResult<object>
只是类型的声明,它没有运算符 new 和 (),但 MS 的官方页面说nameof
接受变量及其成员。为什么这个表达有效?我以前没有看到这样的声明。