Todo dev, desde o iniciante até o sênior, já fez uma validação de e-mail, seja em .NET ou em sua linguagem. E Sempre utilizamos a expressão regular para isto.. Não é mesmo?
O .NET vem aprimorando e trazendo novas funcionalidades a cada versão. Você conhece a System.Net.Mail
?
No .NET há diferentes maneiras, incluindo Regex, EmailAddressAttribute, RegularExpressionAttribute , MailAddress
ou usando bibliotecas externas
System.Net.Mail
Você sabia que pode utilizar o construtor MailAdress
que se encontra na biblioteca System.Net.Mail
'
Ela segue o padrão RFC 2822 de padrão de envio de mensagem, o E-mail.
Utilizando System.Net.Mail
Basta dar um using de System.Net.Mail e utilizar método abaixo:
public bool CheckEmail_MailAddress() =>
MailAddress.TryCreate("marcio.kgr@gmail.com", out var _);
Benchmark
A pergunta é, se vale a pena utilizar ele ao invés da forma convencional utilizando a expressão regular.
Vamos ao resultado do Benchmark utilizando .NET 7
Veja que dependendo da forma de utilização da expressão regular, ela pode ser muito mais performática.
Considerações
Levando em conta a complexidade de trabalhar com Expressão regular e performance do que o .NET já entrega na biblioteca, é muito interessante a sua utilização
Top comments (1)
Interessante, mas num teste preliminar aqui, usei "MailAddress.TryCreate("marcio.kgr@gmail", out var _)" e retornou true.
Com o regex dá pra amarrar melhor, a pena é que perde-se performance.