是否可以獲取作爲參數傳遞的變量的名稱?如何獲取作爲參數傳遞的變量的名稱
當你問我解釋爲什麼我需要這個,這裏是我的解釋。我正在使用硒構建測試framweork。這裏是我需要那個作爲參數傳遞的變量名稱的例子。
我有場頁面對象:
[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));
}
getNameOfVariableThatWasPassedToThisParameter(element)
的預期結果將爲string = "SampleButton"
我正在使用諸如SendKeys(SampleInput, nameof(SampleInput), valueToSet)
和它會設置值並記錄它的設置。所以我只想擺脫即nameof(SampleInput)
。我想要減少需要傳遞給函數的變量量。
雖然有可能,但只有極少數情況下有用。可以更詳細地解釋你的*問題*知道傳遞的變量的名稱不應該是必需的。 – nvoigt
@nvoigt這可能嗎?現在你已經注意到了...... – atlaste
你可以使用[Expression](https://msdn.microsoft.com/de-de/library/system.linq.expressions.expression(v = vs.110) .aspx)來做到這一點。例如,請參閱[this](http://stackoverflow.com/questions/793571/why-would-you-use-expressionfunct-rather-than-funct)。不過,我強烈懷疑你有一個XY問題。描述你的問題,而不是將解決方案視爲理所當然,你可能會得到更好的答案。 – nvoigt