Apesar de programar em c# já alguns anos, faz pouco tempo que venho utilizando um fantástico recurso da linguagem. Estou falando de extension methods (metodos de extensão). Com esse recurso é possível incorporar à um Type novos comportamentos mesmo que estejam em um assemble, não é necessário recompilar a classe. Isso é possível através de métodos especiais static, apenas acrescentando a palavra reservada this seguida de um parâmetro do tipo que deseja modificar. Na prática ficaria assim:
Imagine que gostaria de ter um método ToGuid() em um objeto tipo string.
var objeto = "e7c69d65-ce35-4eb4-b5a3-db245a028b9d"; var novoGuid = objeto.ToGuid();
Com metodos de extensão ficaria assim:
public static class ConvertHelper { public static Guid ToGuid(this String o) { return new Guid(o); } }
Isso bastaria para adicionar o comportamento ToGuid() ao tipo string!
.. Tudo bem, admito que este exemplo é bem simples, não teria muita utilizade na prática, mais
é so mesmo pra demonstrar esse recurso da nossa linguagem..
Até a próxima!