using System;
namespace _001_004_014_FieldModifiers
{
class Program
{
static void Main(string[] args)
{
Pessoa.campoStatic = "campo static é acessado através da classe. "
+"Todos os outros são acessados através da instância";
Pessoa p = new Pessoa()
{
campoPublic = "campo public é acessado por tipos de qualquer namespace",
campoInternal = "campo internal é acessado por tipos que estão "
+"no mesmo assembly (.exe, .dll)",
campoProtectedInternal = "campo protected é acessado por tipos que "
+"estão no mesmo assembly (.exe, .dll) ou por tipos derivados"
};
String x = p.campoReadOnly;
String y = p.CampoPrivate;
}
}
class Pessoa
{
public String campoPublic;
protected String campoProtected = "campo protected é acessado por tipos derivados";
internal String campoInternal;
protected internal String campoProtectedInternal;
private String campoPrivate = "campo private é acessado somente por membros do tipo";
public static String campoStatic;
readonly public String campoReadOnly = "somente leitura";
public String CampoPrivate { //isso é uma property
get { return this.campoPrivate; }
set { this.campoPrivate = value; }
}
}
}