如何让编译器知道参数是属性名
本文关键字:参数 属性 编译器 | 更新日期: 2023-09-27 18:14:36
使用xUnit时,如果我输入code:
public static IEnumerable<object[]> TestCases
{
// test data
}
[Theory, PropertyData("TestCases")]
public void Test(// some parameter){}
编译器/resharper(我不确定是什么使它工作)知道"TestCases"(构造函数中的字符串参数)是我定义的静态属性TestCases。
背后的机制是什么?
谢谢你的评论。
这是我观察到的。如果没有与该名称对应的成员,该字符串将突出显示为错误。似乎是关于r#,当我关闭它时,错误将不再显示
如果你想在"TestCases"
字符串上获得高亮显示、导航和代码完成,这是ReSharper的功能之一。从本质上讲,ReSharper特别注意到这样一个事实,即某些字符串标识符实际上与其他地方找到的符号相关。因此,它为您提供的特性就好像您输入的字符串是一个实际的标识符。