Я написал метод-расширение для simualte List's First()
, но возвращаемое значение (на самом деле ссылка, не?) Не работает, если я пытаюсь изменить его свойство, например;Первый() для HtmlElementCollection
HtmlElement ele = webBrowser1.Document.All.GetElementsByName("foo").First();
ele.InnerText = "hello!"; // doesn't Works. That value isn't changed. Why?
webBrowser1.Document.All.GetElementsByName("foo")[0].InnerText = "abc"; // but this does Works
Вот First()
функция:
public static HtmlElement First(this HtmlElementCollection a)
{
if (a == null)
throw new ArgumentNullException();
if (a.Count == 0)
throw new InvalidOperationException();
return a[0];
}
Почему используя возврат из a.First().value = foo
не работает, но arr[0].value = "hehe";
делает? как мне это исправить? мне нужно узнать, как использовать возврат ref
?
вы можете проверить, если результат от First() и [0] является та же ссылка, они должны быть такими же, HtmlElement это класс, поэтому экземпляр этого находится в куче, не делает того, что они не равны – Sean