Tag Archives: class library

I Love C#! – Dados a membros

Performance #1 : Atribuir dados a membros de uma classe

Console Project

Para criar este app irei utilizar a estrutura simples de soluções C#.

  • Nome : DemoCS
  • Template : Console Project
  • Referências : Default
  • NetFW : 4.6

Como o objetivo é mostrar as características da linguagem, será utilizado um projeto Console Application. Todos os exemplos foram desenvolvidos no Community 2015.

Pessoa.cs

Aqui temos a definição da classe Pessoa:

namespace AtribuirMembrosClasses
{
    public class Pessoa
    {
        public static string Nome { get; set; }
        public static string Mail;
    }
}

Nada demais, apenas uma classe que possui uma propriedade Nome e um membro Mail, ambos definidos como estáticos.

No Main

Agora só resta utilizar esses membros:

using System;
using System.Diagnostics;

namespace AtribuicaoMembrosClasses
{
    class Program
    {
        static void Main(string[] args)
        {
            Stopwatch st = new Stopwatch();
            st.Start();
            for (int i = 0; i < 400; i++) { Pessoa.Nome = "Aldo"; } st.Stop(); Console.WriteLine("usando Property: -> tempo gasto : " + st.ElapsedTicks);
            st.Restart();
            for (int i = 0; i < 400; i++) { Pessoa.Mail = "C#"; } st.Stop(); Console.WriteLine("Usando Atribuição Direta (Membro) : -> tempo gasto : " + st.ElapsedTicks);
            Console.ReadLine(); 
        }
    }
}

Aqui estou atribuindo valores à classe Pessoa:

  • Usando a propriedade Nome
  • Usando o membro Mail

Agora a pergunta. Qual a forma mais rápida?

Observações

Veja alguns pontos importantes:

Note que atribuir valores via propriedade é bem lento.

cs_performance_dadosmembros

Se preferir utilizar instâncias das classes e não definir os membros da classe como estáticos, usar a propriedade será ainda mais lento.

Ok! Sobre o ATRIBUIR MEMBROS CLASSES é tudo o que eu tenho a dizer.