- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我现在正在用 C# 创建一个 ConfigurationSection。我决定通过使用 nameof(PropertyName) 而不是硬编码字符串来利用一些 C# 6 功能。
但是,我从 Resharper 得到了一个关于递归调用的奇怪结果。
举个例子:
我明白为什么它可能会发出此警告,因为该属性在其自身内被引用。然而,我不相信这实际上是递归的。
这个电话有什么我需要担心的吗?
最佳答案
除非 this[string]
调用 CoreApiRootUrl
,否则它不是递归的。
你是对的,nameof(...)
实际上根本没有调用。
我刚刚验证了我在一个小型测试类中看到了相同的错误(使用 R# 10.0.1):
public class Bug
{
public string this[string x] => "";
public string Foo
{
get { return this[nameof(Foo)]; } // Warning here
}
}
奇怪的是,如果我将 Foo
更改为表达式主体属性:
public string Foo => this[nameof(Foo)];
我没有看到警告。
绝对是 R# 错误 - 将其提交给 Jetbrains。
关于c# - 这个 nameof() 真的是递归调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36090776/
我有一个简单的类: public class Stu { public string Name { get; set; } } 如果我这样做: var stu = new Stu(); Con
我发现了一个有趣的包并想在我的 typescript 应用程序中使用它:https://github.com/dsherret/ts-nameof 但是我无法导入nameof 函数。它不在 d.ts
我试图让检查 null 异常更容易,所以我创建了这个静态方法: /// /// Static method for throwing multiple argument null exception
我正在尝试获取通用接口(interface)上方法的名称。我希望它能工作,因为类型部分是一个有效的类型: //This does not compile nameof(IGenericInterfac
所以我想做的很简单。 我正在尝试对某些基本类型运行 nameof(),因为我需要这些常量来满足特定要求。 但是当我尝试为 nameof(bool) 这样做时,它说 nameof() 在当前上下文中不存
目前对于我的 combobox 绑定(bind),我这样写: comboBox1.DataSource = DataList .Select(x => new { Value = x,
使用 Entity Framework ,我有一个名为权限的实体,它有一组 bool s 指定可以做什么和不可以做什么。 有点像: public class Permissions { publ
我正在尝试获取通用接口(interface)上方法的名称。我希望它能工作,因为类型部分是一个有效的类型: //This does not compile nameof(IGenericInterfac
class Foo { public T Bar() { /* ... */ } } 我想将 Bar 的名字传递给 Type.GetMethod(string) .我可以这样做 someType
在 expressions 上使用 nameof 来提取属性名称是个好主意吗? //method with expression protected void RaisePropertyChanged
我正在试验 nameof 和泛型。我没有得到预期的结果。我不确定这是否是规范的一部分。 class MainClass { public static void Main (string[]
我正在使用 VS 2013 和 .Net Framework 4.6。我想使用新的 C# 6 功能(例如 nameof)。但我找不到它。 我应该使用 VS 2015 吗?还是更高的 .Net Fram
在 C# 6 中,您可以使用 nameof()运算符获取包含变量或类型名称的字符串。 这是在编译时评估还是在运行时通过某些 Roslyn API 评估? 最佳答案 是的。 nameof() 在编译时计
我在我的项目文件中使用 F# 4.7 和 preview。 我有这样的类型: type Record = { Name : string Description : string Fiel
nameof(order.User.Age)只返回 Age而不是 order.User.Age 以更受限制的方式进行操作的原因是什么? 如果我们只想要姓氏,我们可以做类似的事情 public stat
我有一个类的多个实例,我想在一个数组中跟踪这些实例,该数组包含我无法控制的此类类型。为此,我创建了一个 List然后我将其与 MyClass[] 中的每个值进行比较我无法控制。 然后,我使用 C#6.
如果我执行 nameof(instance.SomeProperty),它的计算结果为 "SomeProperty"。 有什么方法可以获得整个方法链 "instance.SomeProperty"?
我对 nameof() 运算符有点困惑。因此,例如我不能在另一个类的 nameof() 中使用类的私有(private)字段,但我可以使用 public 非 static 字段 using non s
我想使用下面的 C#6 代码 var joe = new Self(); Console.WriteLine(joe); ...并获得以下输出: joe 下面的尝试 class Self { pu
我现在正在用 C# 创建一个 ConfigurationSection。我决定通过使用 nameof(PropertyName) 而不是硬编码字符串来利用一些 C# 6 功能。 但是,我从 Resha
我是一名优秀的程序员,十分优秀!