2010-03-03 7 views

risposta

10

In pratica quando si desidera fornire conversioni tra tipi. LINQ to XML fornisce un buon esempio ... C'è un implicito conversione da stringa a XName, in modo da poter scrivere:

XName name = "element"; 

ma c'è un esplicito conversione da XAttribute a int (e molti altri tipi) così è necessario includere un cast nel codice:

int value = (int) element.Attribute("age"); 

pensare molto attentamente prima di fornire le conversioni implicite - sono raramente una buona idea; LINQ to XML li usa con grande efficacia, ma possono essere fonte di confusione. Anche le conversioni esplicite definite dall'utente possono sorprendere il lettore incauto.

+0

Quasi tutte le volte evito di utilizzarle come progettista di biblioteche (a meno che non sia sicuro che non vengano utilizzate in modo scorretto e proteste). –