Nesta aula iremos aprender o que é uma classe singleton, como criar e utilizar esta classe em C#.
Classe Singleton possui somente uma instaância para toda a aplicação.
Para criar uma classe Singleton no C# , devemos criar a classe com um construtor privado.Dessa forma não será possível riar uma instância da classe.
namespace console_app.Classes
{
public class Email
{
private Email(){}
}
}
Se tentarmos criar uma instância da classe Email,ocorre erro:
namespace console_app
{
class Program
{
static void Main(string[] args)
{
Email email = new Email(); //Erro:Email() is inaccessible due to its protection level.
}
}
}
Para termos uma classe Singleton no C# , devemos criar:
namespace console_app.Classes
{
public class Email
{
private Email(){}
private static Email instancia;
Public string Origem;
Public string Destino;
Public string Titulo;
Public string Corpo;
public Email Instancia
{
get
{
if (instancia == null)
{
instancia = new Email();
}
return instancia;
}
}
public static void EnviarEmail()
{
Console.WriteLine("Enviando email para:" + Destino + "\com o titulo: " + Titulo + "\nCorpo: " + Corpo);
}
}
}
Ao chamar a classe Email no programa principal(main), podemos acessar os atributos através da instancia criada dentro da classe Email:
namespace console_app
{
class Program
{
static void Main(string[] args)
{
Email.Instancia.Corpo = "bla bla bla";
Email.Instancia.Titulo = "Titulo do Email";
Email.Instancia.Origem = "danilo@beminfinito.com.br";
Email.Instancia.Destino = "danilo@beminfinito.com.br";
Email.Instancia.EnviarEmail();
}
}
}
Nesta aula iremos aprender o que é uma classe singleton, como criar e utilizar esta classe em C#.
Classe Singleton possui somente uma instaância para toda a aplicação.
Para criar uma classe Singleton no C# , devemos criar a classe com um construtor privado.Dessa forma não será possível riar uma instância da classe.
namespace console_app.Classes
{
public class Email
{
private Email(){}
}
}
Se tentarmos criar uma instância da classe Email,ocorre erro:
namespace console_app
{
class Program
{
static void Main(string[] args)
{
Email email = new Email(); //Erro:Email() is inaccessible due to its protection level.
}
}
}
Para termos uma classe Singleton no C# , devemos criar:
namespace console_app.Classes
{
public class Email
{
private Email(){}
private static Email instancia;
Public string Origem;
Public string Destino;
Public string Titulo;
Public string Corpo;
public Email Instancia
{
get
{
if (instancia == null)
{
instancia = new Email();
}
return instancia;
}
}
public static void EnviarEmail()
{
Console.WriteLine("Enviando email para:" + Destino + "\com o titulo: " + Titulo + "\nCorpo: " + Corpo);
}
}
}
Ao chamar a classe Email no programa principal(main), podemos acessar os atributos através da instancia criada dentro da classe Email:
namespace console_app
{
class Program
{
static void Main(string[] args)
{
Email.Instancia.Corpo = "bla bla bla";
Email.Instancia.Titulo = "Titulo do Email";
Email.Instancia.Origem = "danilo@beminfinito.com.br";
Email.Instancia.Destino = "danilo@beminfinito.com.br";
Email.Instancia.EnviarEmail();
}
}
}