FORUM DARKERS

Tecnologia & Informática => Programação => C/C#/C++ => Topic started by: ÐλяkFeλя on 14 de September , 2008, 08:39:40 AM

Title: Ultimate C# tuto/Lição 10 - Propriedades
Post by: ÐλяkFeλя on 14 de September , 2008, 08:39:40 AM
Lição 10: Propriedades

Esta lição ensina C # Propriedades. Os nossos objectivos são os seguintes:

     * Para compreender o que são propriedades.
     * Implementar uma propriedade.
     * Criar uma propriedade somente para leitura.
     * Criar uma Escreve-Só propriedade.

Propriedades oferecem a oportunidade de proteger um domínio de uma classe para a leitura e escrita-a através da propriedade. Em outras línguas, esta é freqüentemente realizada por implementar programas especializados getter e setter métodos. C # propriedades permitir este tipo de protecção ao mesmo tempo que lhe permite o acesso a bens como se fosse a uma área. Para obter uma apreciação para conseguir aquilo propriedades, vamos ter um olhar para o modo de fornecer campo encapsulamento por métodos tradicionais.

Listing 10-1. Um exemplo de classe tradicional Campo Acesso: Accessors.cs

using System;

public class PropertyHolder
{
    private int someProperty = 0;

    public int getSomeProperty()
    {
        return someProperty;
    }

    public void setSomeProperty(int propValue)
    {
        someProperty = propValue;
    }

}

public class PropertyTester
{
    public static int Main(string[] args)
    {
        PropertyHolder propHold = new PropertyHolder();

        propHold.setSomeProperty(5);

        Console.WriteLine("Property Value: {0}", propHold.getSomeProperty());

        return 0;
    }
}

Listing 10-1 mostra o método tradicional de acesso à classe fields.The PropertyHolder classe tem o domínio que estamos interessados em acessar. Ele tem dois métodos, getSomeProperty () e setSomeProperty (). O getSomeProperty () método retorna o valor da someProperty campo. O setSomeProperty () método estabelece o valor da someProperty campo.

O PropertyTester classe utiliza os métodos da classe PropertyHolder para obter o valor do campo someProperty no PropertyHolder classe. O método main () instantiates um novo objeto PropertyHolder, propHold. Próxima someProperty define o campo de propHold para o valor 5, utilizando o método setSomeProperty. Em seguida, o programa imprime o valor de uma propriedade Console.WriteLine () método chamada. O argumento utilizado para obter o valor do imóvel é uma chamada para o getSomeProperty () o método de propHold objeto. Ela imprime out "Propriedade Valor: 5" para o console.

Este método de acesso à informação em um campo tem sido boa, uma vez que apoia o objeto-orientado conceito de encapsulamento. Se a execução do someProperty mudado de um tipo int para um tipo byte, isto ainda funciona. Agora a mesma coisa pode ser conseguida com propriedades muito suave.

Listing 10-2. Acessando classe campos com propriedades: Properties.cs

using System;

public class PropertyHolder
{
    private int someProperty = 0;

    public int SomeProperty
    {
        get
       {
            return someProperty;
        }
        set
       {
            someProperty = value;
        }
    }
}

public class PropertyTester
{
    public static int Main(string[] args)
    {
        PropertyHolder propHold = new PropertyHolder();

        propHold.SomeProperty = 5;

        Console.WriteLine("Property Value: {0}", propHold.SomeProperty);

        return 0;
    }
}

   
Listando 10-2 mostra como criar e utilizar um imóvel. O PropertyHolder classe tem a SomeProperty propriedade implementation.Notice que a primeira letra da primeira palavra é maiúscula. Essa é a única diferença entre os nomes dos bens e SomeProperty o campo someProperty. A propriedade tem dois acessores, obter e definir. A começar accessor retorna o valor do campo someProperty a chamada código. O conjunto accessor estabelece o valor da someProperty campo com o conteúdo de valor, que é o valor a ser atribuído pela chamada código. O valor apresentado no conjunto accessor C # é uma palavra reservada.

A classe PropertyTester usa o SomeProperty propriedade no PropertyHolder classe. A primeira linha do método main () PropertyHolder cria um objeto chamado propHold. Próximo ao valor da someProperty domínio da propHold objeto está definido para 5, utilizando o SomeProperty propriedade. Trata-se de que a simples - basta para atribuir o valor do imóvel como se fosse um campo.

Depois disso, o Console.WriteLine () método imprime o valor do campo someProperty do propHold objeto. Fá-lo através da utilização dos SomeProperty propriedade do propHold objeto. Mais uma vez, é assim tão simples - basta usar o imóvel como se fosse um domínio próprio.

Propriedades podem ser feitas somente para leitura. Isso é realizado por ter apenas um accessor obter o imóvel em execução.

Listing 10-3. Read-only Propriedade: ReadOnlyProperty.cs

using System;

public class PropertyHolder
{
    private int someProperty = 0;

    public PropertyHolder(int propVal)
    {
        someProperty = propVal;
    }

    public int SomeProperty
    {
        get
       {
            return someProperty;
        }
    }
}

public class PropertyTester
{
    public static int Main(string[] args)
    {
        PropertyHolder propHold = new PropertyHolder(5);

        Console.WriteLine("Property Value: {0}", propHold.SomeProperty);

        return 0;
    }
}

Listando 10-3 mostra a forma de aplicar um só de leitura property.The PropertyHolder classe SomeProperty tem uma propriedade que só se implementa um accessor. Ela deixa de fora o conjunto accessor. Este particular PropertyHolder classe tem um construtor que aceita um parâmetro int.

O método main () da classe PropertyTester cria um novo objeto PropertyHolder chamado propHold. A instanciação do objeto propHold usa o construtor do PropertyHolder que toma um parâmetro int. Neste caso, é definir a 5.This inicializa o someProperty domínio da propHold objeto a 5.

Desde a SomeProperty propriedade da classe PropertyHolder é só de leitura, não há outra maneira de definir o valor do someProperty campo. Se você propHold.SomeProperty = 7 inserido na lista, o programa não compilar, porque SomeProperty é somente para leitura. Quando o SomeProperty propriedade é usada na Console.WriteLine () método, que funciona bem. Isto porque se trata de uma operação que apenas ler invoca a obter accessor do SomeProperty propriedade.

Listing 10-4. Escreve-Só Propriedade: WriteOnlyProperty.cs

using System;

public class PropertyHolder
{
    private int someProperty = 0;

    public int SomeProperty
    {
        set
       {
            someProperty = value;

            Console.WriteLine("someProperty is equal to {0}", someProperty);
        }
    }
}

public class PropertyTester
{
    public static int Main(string[] args)
    {
        PropertyHolder propHold = new PropertyHolder();

        propHold.SomeProperty = 5;

        return 0;
    }
}

Listando 10-4 mostra como criar e usar um só escrever-propriedade. Desta vez a obter accessor é removido do SomeProperty propriedade do PropertyHolder classe. O conjunto accessor tenha sido adicionado, com um pouco mais lógica. Ela imprime o valor do someProperty campo depois de ter sido modificada.

O método main () do PropertyTester classe instantiates a PropertyHolder classe com um construtor padrão. Em seguida, ele usa o SomeProperty propriedade do propHold objeto para definir o campo de someProperty a propHold objeto a 5. Este invoca o conjunto accessor do propHold objeto, que estabelece o valor da sua someProperty campo a 5 e depois imprime "someProperty é igual a 5" para o console.


Em resumo,Você já sabe o que são de propriedades e de como eles são utilizados. Das técnicas tradicionais de encapsulamento tenham contado com métodos distintos. Propriedades permitem aceder ao estado objetos como se fosse um campo. Propriedades podem ser feitas somente para leitura ou escrita-e só você sabe a forma de aplicar cada tipo.


Codigos...



Code (Accessors.cs) Select
using System;

public class PropertyHolder
{
   private int someProperty = 0;

   public int getSomeProperty()
   {
      return someProperty;
   }
   
   public void setSomeProperty(int propValue)
   {
      someProperty = propValue;
   }
}

public class PropertyTester
{
   public static int Main(string[] args)
   {
      PropertyHolder propHold = new PropertyHolder();

      propHold.setSomeProperty(5);

      Console.WriteLine("Property Value]

Pode ser compilado, digitando a seguinte linha de comando:

CSC accessors.cs

Prgram pode executar o executável, digitando a seguinte linha de comando:

accessors.exe

[code]using System;

public class PropertyHolder
{
   private int someProperty = 0;

   public int SomeProperty
   {
      get
      {
         return someProperty;
      }
      set
      {
         someProperty = value;
      }
   }
}

public class PropertyTester
{
   public static int Main(string[] args)
   {
      PropertyHolder propHold = new PropertyHolder();

      propHold.SomeProperty = 5;
     
      Console.WriteLine("Property Value: {0}",propHold.SomeProperty);

      return 0;
   }
}

Pode ser compilado, digitando a seguinte linha de comando:

CSC properties.cs

Pode executar o programa executável, digitando a seguinte linha de comando:

properties.exe

Pode ser compilado, digitando a seguinte linha de comando:

CSC accessors.cs

Prgram pode executar o executável, digitando a seguinte linha de comando:

accessors.exe

using System;

public class PropertyHolder
{
   private int someProperty = 0;

   public PropertyHolder(int propVal)
   {
      someProperty = propVal;
   }
   
   public int SomeProperty
   {
      get
      {
         return someProperty;
      }
   }
}

public class PropertyTester
{
   public static int Main(string[] args)
   {
      PropertyHolder propHold = new PropertyHolder(5);

      Console.WriteLine("Property Value: {0}",propHold.SomeProperty);

      return 0;
   }
}

Pode ser compilado, digitando a seguinte linha de comando:

CSC readonlyproperty.cs

Pode executar o programa executável ser digitando o seguinte na linha de comando:

readonlyproperty.exe

using System;

public class PropertyHolder
{
   private int someProperty = 0;

   public int SomeProperty
   {
      set
      {
         someProperty = value;

         Console.WriteLine("someProperty is equal to {0}",someProperty);
      }
   }
}

public class PropertyTester
{
   public static int Main(string[] args)
   {
      PropertyHolder propHold = new PropertyHolder();

      propHold.SomeProperty = 5;
   
      return 0;
   }
}

   
Pode ser compilado, digitando a seguinte linha de comando:

CSC writeonlyproperty.cs

Prgram pode executar o executável, digitando a seguinte linha de comando:

writeonlyproperty.exe




CONTINUA....



FEAR
Title: Re: Ultimate C# tuto/Lição 10 - Propriedades
Post by: blackwinner on 15 de September , 2008, 05:32:27 AM
Cara, amazing *-*
Ta fantástico mesmo.

Vo me arruma pro trabalho mas não antes de te dar meus parabens.

Cya, aparece no msn ou pergunta pro teus o que eu contei pra ele o0 ;)