O operador implícito em C # pode fazer algumas coisas mágicas para legibilidade do código. Suponha, por exemplo, que eu tenha uma classe que ajude a impor limites.
public class Limit
{
private int _limit;
public Limit(int limit)
{
_limit = limit;
}
public bool Reached(int test)
{
return _limit <= test;
}
}
Agora temos uma classe de grupo que limita o número de membros:
public class Group
{
private Limit _memberLimit;
private List<Member> _members;
public Group(Limit memberLimit)
{
_memberLimit = memberLimit;
}
public void AddMember(Member member)
{
if(_memberLimit.Reached(_members.Count())
throw new LimitReachedException();
_members.Add(member);
}
}
Para instanciar uma instância da classe Group ficaria assim:
var group = new Group(new Limit(5));
O que é bom, mas se usarmos o operador implícito na classe Limit, podemos tornar o código mais legível. Adicionar o método a seguir à classe Limit nos permitirá evitar a instanciação em linha.
public static implicit operator Limit(int limit)
{
return new Limit(limit);
}
Agora podemos instanciar a classe Group assim:
var group = new Group(5);
Ou para maior legibilidade, podemos incluir o nome do parâmetro:
var group = new Group(memberLimit: 5);
Isso pode adicionar um pouco de sobrecarga quando um novo desenvolvedor que não está familiarizado com o operador implícito começa a ler o código para entender como ele funciona. Mas do ponto de vista de aprender o que o código faz, esse tipo de legibilidade pode ser muito útil.
Depois de saber sobre o operador implícito, você começará a descobrir várias maneiras pelas quais ele pode ser benéfico.