Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取作为参数传递的变量的名称_C#_Reflection - Fatal编程技术网

C# 如何获取作为参数传递的变量的名称

C# 如何获取作为参数传递的变量的名称,c#,reflection,C#,Reflection,是否可以获取作为参数传递的变量的名称 当你要我解释为什么我需要这个的时候,这是我的解释。我正在使用selenium构建一个测试框架。下面是一个示例,我需要作为参数传递的变量的名称 我有一个带有字段的页面对象: [FindsBy(How = How.CssSelector, Using = "input[name='sample']")] private IWebElement SampleButton { get; set; } 我点击它就像: Click(SampleButton, name

是否可以获取作为参数传递的变量的名称

当你要我解释为什么我需要这个的时候,这是我的解释。我正在使用selenium构建一个测试框架。下面是一个示例,我需要作为参数传递的变量的名称

我有一个带有字段的页面对象:

[FindsBy(How = How.CssSelector, Using = "input[name='sample']")]
private IWebElement SampleButton { get; set; }
我点击它就像:

Click(SampleButton, nameof(SampleButton));
下面是您在上面看到的单击函数的主体:

public void Click(IWebElement element, string elementName)
        {
            element.Click();
            Logger.Log("Click: '{0}'", elementName);
        }
结果:传递给函数的按钮被单击,在日志文件中我有“单击:SampleButton”

现在我正在研究如何更改单击函数,它将被调用为:

Click(SampleButton)
它看起来像:

public void Click(IWebElement element)
        {
            element.Click();
            Logger.Log("Click: '{0}'", getNameOfVariableThatWasPassedToThisParameter(element));
        }
传递给参数(元素)的
getnameofVariables的预期结果将是
string=“SampleButton”


我使用的是
SendKeys(SampleInput,nameof(SampleInput),valueToSet)
以及设置值和设置位置的日志。所以我只想去掉
nameof(SampleInput)
。我想减少需要传递给函数的变量量。

虽然这是可能的,但只有极少数情况下有用。你能更详细地解释你的问题吗?根本不需要知道所传递变量的名称。@nvoigt有可能吗?现在你引起了我的注意…你可以用一个。例如,请参见。但是,我强烈怀疑您有XY问题。描述你的问题,而不是想当然地认为解决方案,你可能会得到一个更好的答案。@nvoigt啊,这就是你的意思。不错。是的,我想这个场景就可以了。@之前我正在构建测试框架。我需要它的功能,将点击按钮,将通过参数传递,并记录它像“点击:按钮名”。在这种情况下,我像Click(LoginButton,nameof(LoginButton))一样使用它。我只是想知道是否有可能只有点击(登录按钮);虽然这是可能的,但只有极少数情况下它是有用的。你能更详细地解释你的问题吗?根本不需要知道所传递变量的名称。@nvoigt有可能吗?现在你引起了我的注意…你可以用一个。例如,请参见。但是,我强烈怀疑您有XY问题。描述你的问题,而不是想当然地认为解决方案,你可能会得到一个更好的答案。@nvoigt啊,这就是你的意思。不错。是的,我想这个场景就可以了。@之前我正在构建测试框架。我需要它的功能,将点击按钮,将通过参数传递,并记录它像“点击:按钮名”。在这种情况下,我像Click(LoginButton,nameof(LoginButton))一样使用它。我只是想知道是否有可能只有点击(登录按钮);