Artigo em português -> http://felipeaugusto-developer.blogspot.com.br/2013/08/criando-indexadores-c.html
After all, what's indexers in C#?
It's only a intelligent array that can be used both classes as structures, an example:
Let's create our own indexer.
//creating the class
public class Vehicle
{
private Dictionary<string, string> _parts = new Dictionary<string, string>();
//creating the indexer (the "this" is a reference for the class)
public string this[string key]
{
get { return _parts[key];}
set { _parts[key] = value; }
}
//After instantiating the Vehicle, let's use the indexer:
var car = new Vehicle();
car["fabricante"] = "Honda";
car["modelo"] = "Civic";
car["year"] = "2011";
}
Remember that the name of the Key can be anyone, for example, put the name car["indexer"]="value";
If you want to return the value of some property indexed, just do this:
Console.WriteLine("Constructor {0}", car["fabricante"]);
Hope that you enjoyed! =P
Felipe Augusto é MCP (Programming in C# Specialist), atua com desenvolvimento WEB e Desktop.
Conhece produtos Microsoft (Dynamics CRM e Sharepoint) a ponto de atrever-se a personalizá-los, é entusiasta do Windows Phone, fã de HQs, Bill Gates e Palmeirense fanático.
Apaixonado por criação de software, acredita que procedures com regras de negócio podem ser o início de um crime.
Conhece produtos Microsoft (Dynamics CRM e Sharepoint) a ponto de atrever-se a personalizá-los, é entusiasta do Windows Phone, fã de HQs, Bill Gates e Palmeirense fanático.
Apaixonado por criação de software, acredita que procedures com regras de negócio podem ser o início de um crime.
quarta-feira, 21 de agosto de 2013
Nomear variáveis e métodos
Olá,
Estou criando este artigo como um apelo aos desenvolvedores em geral, sempre que faço manutenção em software as vezes dá vontade de entrar em depressão com código mal feito e o principal vilão são o nome das varáveis, se você não sabe como utilizar a palavra reservada "var" por favor evite utilizá-la.
Citarei alguns exemplos de boas práticas para os nomes:
Nome de variável: A menos que estejamos falando de um laço for ou algum contador por que diabos você vai criar váriaveis com o nome de "i", "x", "k", etc..
Coloque nomes do que a variável irá armazenar, se sua variável vai armazenar um salário então ela tem que ter o nome de:
decimal salario = 500.00;
e não decimal sal = 500,00;
ou até mesmo decimal salarioValor = 500.00;
decimal salarioFuncionario = 500.00;
Sabe onde está o erro (na verdade uma informação desnecessária e não necessariamente um erro)? Se é um salário eu não preciso informar que é um valor, por que eu já sei disso, a não ser que o salario estivesse em uma categoria, ai sim poderíamos falar:
string categoriaSalario = "JR";
Nome de métodos: MUITO cuidado com o nome dos seus métodos um simples nome mal dado pode confundir muito seu companheiro de desenvolvimento, quer um exemplo?
Procurem dar nomes que falem aquilo que o método faz, se o método calcula algo então o nome dele tem que ser CalcularAlgo() e não Calcular();
Observem este método (SEMPRE use verbos na primeira palavra do seu método, um método é uma ação então nada mais correto do que usar verbos):
List<Funcionario> BuscarFuncionario()
De cara já termos um erro, nosso tipo de retorno é uma lista então no minimo esse método tem que estar no plural, se a classe é um funcionário no minimo o que se espera é que se esteja buscando funcionários
Correção:
List<Funcionario>GetAll()
Pronto já temos um método bem melhor do que o outro que não tinha pluralização, pensa q é frescura? Então vamos olhar isso:
Exemplo 1:
Funcionario funcionario = new Funcionario();
var funcionarios = funcionario.BuscarFuncionario();
Exemplo 2:
var funcionario = new Funcionario();
var listaFuncionarios = funcionario.GetAll();
Não preciso nem dizer que o exemplo 2 logo de cara você sabe que seu método está retornando uma lista de funcionários não é verdade?
Tirando que no exemplo 1 você encontra a palavra funcionário tantas vezes que fica até poluído.
Estou criando este artigo como um apelo aos desenvolvedores em geral, sempre que faço manutenção em software as vezes dá vontade de entrar em depressão com código mal feito e o principal vilão são o nome das varáveis, se você não sabe como utilizar a palavra reservada "var" por favor evite utilizá-la.
Citarei alguns exemplos de boas práticas para os nomes:
Nome de variável: A menos que estejamos falando de um laço for ou algum contador por que diabos você vai criar váriaveis com o nome de "i", "x", "k", etc..
Coloque nomes do que a variável irá armazenar, se sua variável vai armazenar um salário então ela tem que ter o nome de:
decimal salario = 500.00;
e não decimal sal = 500,00;
ou até mesmo decimal salarioValor = 500.00;
decimal salarioFuncionario = 500.00;
Sabe onde está o erro (na verdade uma informação desnecessária e não necessariamente um erro)? Se é um salário eu não preciso informar que é um valor, por que eu já sei disso, a não ser que o salario estivesse em uma categoria, ai sim poderíamos falar:
string categoriaSalario = "JR";
Nome de métodos: MUITO cuidado com o nome dos seus métodos um simples nome mal dado pode confundir muito seu companheiro de desenvolvimento, quer um exemplo?
Procurem dar nomes que falem aquilo que o método faz, se o método calcula algo então o nome dele tem que ser CalcularAlgo() e não Calcular();
Observem este método (SEMPRE use verbos na primeira palavra do seu método, um método é uma ação então nada mais correto do que usar verbos):
List<Funcionario> BuscarFuncionario()
De cara já termos um erro, nosso tipo de retorno é uma lista então no minimo esse método tem que estar no plural, se a classe é um funcionário no minimo o que se espera é que se esteja buscando funcionários
Correção:
List<Funcionario>GetAll()
Pronto já temos um método bem melhor do que o outro que não tinha pluralização, pensa q é frescura? Então vamos olhar isso:
Exemplo 1:
Funcionario funcionario = new Funcionario();
var funcionarios = funcionario.BuscarFuncionario();
Exemplo 2:
var funcionario = new Funcionario();
var listaFuncionarios = funcionario.GetAll();
Não preciso nem dizer que o exemplo 2 logo de cara você sabe que seu método está retornando uma lista de funcionários não é verdade?
Tirando que no exemplo 1 você encontra a palavra funcionário tantas vezes que fica até poluído.
terça-feira, 20 de agosto de 2013
Criando indexadores C#
Afinal o que são indexadores em C# ?
Nada mais são do que um array inteligente, podem ser usados tanto em classes como estruturas, vamos à um exemplo:
Vamos criar nosso indexador
//criando a classe
public class Veiculo
{
private Dictionary<string, string> _parts = new Dictionary<string, string>();
//criando o indexador (o this referecia a classe)
public string this[string key]
{
get { return _parts[key];}
set { _parts[key] = value; }
}
Após instaciar o Veiculo vamos utilizar o indexador
var carro = new Veiculo();
carro["constutora"] = "Honda";
carro["modelo"] = "Civic";
carro["ano"] = "2011";
Vale lembrar que o nome da Key pode ser qualquer um, poderia por exemplo colocar o nome carro["indexer"] = "value";
Se quiser retornar o valor de alguma propriedade indexada basta fazer da seguinte forma
Console.WriteLine("Construtora {0}", carro["construtora"]);
Espero que tenham entendido =P
Nada mais são do que um array inteligente, podem ser usados tanto em classes como estruturas, vamos à um exemplo:
Vamos criar nosso indexador
//criando a classe
public class Veiculo
{
private Dictionary<string, string> _parts = new Dictionary<string, string>();
//criando o indexador (o this referecia a classe)
public string this[string key]
{
get { return _parts[key];}
set { _parts[key] = value; }
}
Após instaciar o Veiculo vamos utilizar o indexador
var carro = new Veiculo();
carro["constutora"] = "Honda";
carro["modelo"] = "Civic";
carro["ano"] = "2011";
Vale lembrar que o nome da Key pode ser qualquer um, poderia por exemplo colocar o nome carro["indexer"] = "value";
Se quiser retornar o valor de alguma propriedade indexada basta fazer da seguinte forma
Console.WriteLine("Construtora {0}", carro["construtora"]);
Espero que tenham entendido =P
Assinar:
Postagens (Atom)