Pergunta

Ao lidar com uma coleção de pares de chave/valor, há alguma diferença entre usar o método add () e atribuí -lo diretamente?

Por exemplo, um HTMLGenericControl terá uma coleção de atributos:

var anchor = new HtmlGenericControl("a");

// These both work:
anchor.Attributes.Add("class", "xyz");
anchor.Attributes["class"] = "xyz";

É puramente uma questão de preferência, ou há uma razão para fazer um ou outro?

Foi útil?

Solução

Eles são equivalentes ao seu uso, neste caso, executando o seguinte:

anchor.Attributes["class"] = "xyz";

Na verdade, chama isso internamente:

anchor.Attributes.Add("class", "xyz");

Dentro AttributeCollection a this[string key] Setter se parece com o seguinte:

public string this[string key]
{
  get { }
  set { this.Add(key, value); }
}

Então, para responder à pergunta, no caso de AttributeCollection, é apenas uma questão de preferência. Lembre -se, isso não é verdade para outros tipos de coleção, por exemplo Dictionary<T, TValue>. Nesse caso ["class"] = "xyz" atualizaria ou definiria o valor, onde .Add("class", "xyz") (se já tivesse um "class" entrada) lançaria um erro de entrada duplicado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top