问题标签 [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.

0 投票
0 回答
128 浏览

.net - Lambda 表达式和其他在 Visual Studio 2010 中不起作用的表达式。我知道这可能是类库(?)问题,但我无法解决

我正在逐渐尝试调试由离开公司的开发人员创建的网站。我正在重新创建源代码,因为他离开时似乎没有签入。

我正在使用 dotPeek,反编译我认为相关的位,然后将它们粘贴到本地可用的旧代码中。这样做似乎很疯狂,但我想不出任何其他方法可以将代码恢复到我的本地与服务器匹配的状态,因此可以进行调试。(顺便说一句,这不能正常工作,这是一个不同的问题。

无论如何,代码中充斥着这样的东西:

//(给出错误:无效的表达式术语“。”)和

//(给出错误:名称nameof在当前上下文中不存在。和

//(给出错误:语法错误“:”预期)。

我知道这是因为代码库问题。

这是一个 Visual Studio 2010 项目。在项目属性中显示“目标框架”:.NET Framework 4。输出类型:类库

我不确定该怎么做才能解决“新”代码项。我试过: - 更改为不同的框架版本(这产生了数百个错误)。- 通过尝试使用包管理器控制台安装“roslyn”(或尝试)(我尝试了 3 个不同的版本都没有工作);我还尝试通过从服务器复制目录来手动安装它。

我在网上看到了一些关于向 app.Config(不起作用)或 web.Config(也不起作用)添加东西的建议。

有谁知道如何使错误消失?我真的必须修复它们,因为我不知道更改它们(例如,通过删除?)实际上是否会导致其他错误。我还尝试安装某人的代码来修复 nameof。那也不起作用,可能是因为没有显示如何调用它的示例。

但我有点需要它像编码一样工作 - 我已经在反编译它,我没有时间用旧的(或更新的,谁知道?)版本重新编写它..

有任何想法吗?我已经用完了...

0 投票
2 回答
493 浏览

c# - 如何创建类似于nameof() c#的东西

我有的:

我想要一个像 nameof() 这样的方法,它的行为如下:

我的字符串:

0 投票
1 回答
348 浏览

reflection - F# nameof 运算符不是一等函数

<LangVersion>preview</LangVersion>我在我的项目文件中使用 F# 4.7 。

我有这样的类型:

我想以类型安全的方式获取某些字段的名称,但不是全部。我知道我可以使用反射获取所有字段名称。

这是我想出的最简洁的代码。能不能再简洁点?

0 投票
2 回答
289 浏览

c# - C# 泛型:如何使用 nameof 获取基类属性的名称

我有一个继承层次结构,如下所示:

然后我有一个使用泛型的方法:

我正在尝试获取 的名称MyProperty,但它失败了,因为我试图通过类型而不是对象来执行此操作。有没有一种巧妙的方法可以在不传递对象的情况下获取属性名称?

0 投票
1 回答
66 浏览

c# - 将 nameof 用于递归泛型类型的属性

我有以下课程

如何在 Data 属性上使用 nameof?

它尝试了一些选项,但出现编译错误

更新 为了更好地指定:

我没有在第一个片段中编写类,但我必须按原样使用它。我需要使用反射来获取 Data 属性的 PropertyInfo 实例。我可以通过调用 GetProperty("Data") 来做到这一点,但我更喜欢避免使用字符串,以防使用 Visual Studio 重构重命名 name 属性(例如从数据到内容)。我不能使用 nameof(Data) 并且我处于不同的上下文中,不知道该类中的 Data 属性。

因此,我会调用 GetProperty(nameof({whatever}.Data))。当然,如果不可能,我会使用字符串。但如果有办法,我想知道。

0 投票
2 回答
117 浏览

f# - 继续“在 F# 中是否存在与 C# 的 nameof(..) 等效的内容?”

参考在 F# 中是否有 C# 的 nameof(..) 的等价物?

对于以下情况,nameof 函数如何使用或扩展?

编译器给出以下错误:

错误 FS0503 无法从此代码位置访问采用 1 个参数的成员或对象构造函数“MethodWith2Pars”。方法“MethodWith2Pars”的所有可访问版本都采用 2 个参数

0 投票
1 回答
145 浏览

f# - 记录属性的 F# nameof

我正在尝试使用nameofF# 5.0 预览版中的新功能。它适用于values但不适用于记录属性,例如:

这会导致错误FS0728 Field 'Id' is not static

我试着做:

也没有修复错误。有没有我应该这样做或nameof没有完全实施的特殊方法?

0 投票
2 回答
83 浏览

c# - nameof 不会反映使用

我的源代码文件中有一个别名,如下所示:

我的类.cs

我需要这个,因为我的类的名称发生了变化,现在我需要同时为旧的和新的类结构进行编译。

当我运行该代码时,我得到了"SomeClass"但我期望的"NewClass"。在这种情况下,为什么不nameof使用 -directive 反映别名using

0 投票
0 回答
62 浏览

c# - 属性中的 nameof 产生空字符串

现在我正在开发 INotifyPropertyChanged 源生成器(用于研究生成器)并偶然发现了奇怪的错误(?)。当属性用于nameof引用生成的属性时,对应的属性AttributeData.ConstructorArguments包含空字符串而不是属性名称。

SomeProp是生成的属性,目前没有添加到源中。如果成员是用户定义的,则一切正常。此代码编译。

在此处输入图像描述

  1. 它是编译器中的错误还是设计使然
  2. 解决此问题的最佳方法是什么?从语义模型到语法还是做其他事情?
0 投票
0 回答
49 浏览

c# - 每个 nameof() 用自己的名称初始化只读字符串的缺点?

为了澄清,初始化这样的字符串是否有任何缺点:

我最近遇到了这种方法,并认为它非常聪明,因为您可以重命名变量并同时从代码中的任何位置更改其值,而无需太多麻烦。

显然,这仅在您希望变量具有与变量名称相同的值时才有意义,但除此之外还有陷阱吗?