2014-11-27 3 views
0

Я написал метод-расширение для 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?

+0

вы можете проверить, если результат от First() и [0] является та же ссылка, они должны быть такими же, HtmlElement это класс, поэтому экземпляр этого находится в куче, не делает того, что они не равны – Sean

ответ