
Cartão da Natal da Empresa.
Desejamos feliz natal para vocês todos!
Exercitando de pensamento crítico em tecnologia, mercado e política
string cpf = "822.232.339-99";
...
if ( MinhaClasse.EhCpf(cpf) ){
//código válido...
}
string cpf = "822.232.339-99";
...
if ( cpf.EhCpf() ){
//código válido...
}
namespace MeuNamespace{
public static class MinhaClasse{
public static bool EhCpf(string cpf){
//Trata se eh CPF
}
}
}
namespace MeuNamespace{Só isso! Agora sua classe "MinhaClasse" pode ser usada como um extension method da classe string. Mas para isso, você deve referenciar o namespace com a clausula using no contexto do código, como descrito no exemplo.
public static class MinhaClasse{
public static bool EhCpf(this string cpf){
//Trata se eh CPF
}
}
}
int contador = 0;
private void Form1_Load(object sender, System.EventArgs e)
{
Application.Idle += ( o, e) => { contador++ ; };
}
Esse é só um exemplo, mas aviso que nesse caso, o "Form1" em questão é o principal e
quando ele fecha, é porque a aplicação fecha, então tudo bem ter um lambda expression
aí (anônimo). Mas possivelmente não será uma boa prática para outros casos.
A razão disso está no fato de que como o evento Idle é estático, é muito importante que
no momento em que você vincula um delegate do tipo EventHandler a ele, é necesário
que você mantenha uma rotina de desvinculação preparada para retirar o evento, senão
isso pode se tornar um memory leak.int contador = 0;
EventHandler myHandler = new EventHandler(Contar);
private void Contar( object sender, EventArgs e)
{
contador++;
}
private void Form1_Load(object sender, System.EventArgs e)
{
Application.Idle += myHandler
;
}
//o código de desvinculação pode ficar associado ao destrutor
~Form1()
{
Application.Idle -= myHandler ;
}