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