Можно ли передать свойство в качестве делегата в c#?
Я знаю, что в C# мы можем передавать функции в качестве аргументов метода, но у меня есть свойство, которое в моей ситуации мало чем отличается от функции, которая не принимает параметров, как я могу передать ее в качестве аргумента?
public IWebElement Name => _element.FindElements(By.ClassName("field-key"))[0].FindElements(By.TagName("label"))[0];
Я работаю с селеном и меняю элементы. Вот почему моя собственность Name
такая, какая она есть. Поэтому я всегда получаю последнее имя, когда делаю что-то вроде: MultinationalPage.GeneralPanel.DefinitionField.Name
.
. В моем тесте, чтобы не получить эталонное исключение для устаревшего элемента, я использую Thread.Sleep()
, но я знаю, что есть более эффективные способы теперь это мой подход.
Thread.Sleep(5000)
multinational.EditModal.StateTracker.VerifyChanges(_multinational.GeneralPanel.DefinitionField.Name);
Я бы хотел сделать Thread.Sleep(5000)
внутри VerifyChanges()
, поэтому я хочу передать свойство Name
в качестве делегата VerifyChanges(MultinationalPage.GeneralPanel.DefinitionField.Name)
.
Примерно так:
public void VerifyChanges(Func<IWebElement> Name)
{
Thread.Sleep(5000)
var name = Name;
...
}