如何使编译器知道参数是属性名称

时间:2015-09-24 19:57:15

标签: c# visual-studio resharper xunit

使用xUnit时,如果我输入代码:

public static IEnumerable<object[]> TestCases
{
        // test data
} 
[Theory, PropertyData("TestCases")]
public  void Test(// some parameter){}

编译器/ resharper(我不确定是什么使它工作)知道&#34; TestCases&#34; (构造函数中的字符串参数)是我定义的静态属性TestCases。

它背后的机制是什么?

感谢您的评论。

这是我观察到的。 如果没有具有该名称的相应成员,则该字符串将突出显示为错误。 似乎它是关于R#的,当我把它关闭时,错误不会再出现了。

1 个答案:

答案 0 :(得分:0)

如果您在"TestCases"字符串上进行突出显示,导航和代码完成,这是ReSharper的功能之一。从本质上讲,ReSharper特别注意到某些字符串标识符实际上与其他地方发现的符号相关的事实。因此,它为您提供功能,就像您输入的字符串是实际标识符一样。