Li que em C#, quando não há um modificador de acesso [como private, protected, public, internal] especificado, o padrão é private.
Olhem o exemplo abaixo, criado pelo Visual Studio .NET 2010:
namespace TestandoThread
{
class ClasseThread
{
//Código irrelevante
}
}
namespace TestandoThread
{
class ThreadMain
{
static void Main(string[] args)
{
ClasseThread classeThread1 = new ClasseThread();
}
}
}
Eu esperaria um erro de sintaxe ao criar um objeto ClasseThread. Já que o modificador de acesso é private por padrão, como estou conseguindo criar o objeto? Percebam que não coloquei um construtor padrão public. O compilador me cria um public implicitamente?
Na verdade a classe é privada ao namespace. Ela é acessível por todos do mesmo namespace, mas não acessível por classes de outros namespaces.
Esse não é o conceito do modificador internal?
Esse não é o conceito do modificador internal?[/quote]
Sim. Se você não especificar o modificador, a classe é assumida como sendo internal.
Esse não é o conceito do modificador internal?[/quote]
Sim. Se você não especificar o modificador, a classe é assumida como sendo internal.[/quote]
Espere um pouco…se eu não especificar o modificador, é private, não internal, né?!
Esse não é o conceito do modificador internal?[/quote]
Sim. Se você não especificar o modificador, a classe é assumida como sendo internal.[/quote]
Espere um pouco…se eu não especificar o modificador, é private, não internal, né?![/quote]
Para classe é internal. Classes em C# só aceitam dois especificadores, public e internal. Se você não especificar o atributo, ele é marcado como internal.
Esse não é o conceito do modificador internal?[/quote]
Sim. Se você não especificar o modificador, a classe é assumida como sendo internal.[/quote]
Espere um pouco…se eu não especificar o modificador, é private, não internal, né?![/quote]
Para classe é internal. Classes em C# só aceitam dois especificadores, public e internal. Se você não especificar o atributo, ele é marcado como internal.
[/quote]
Vlw!
Tópico movido para o fórum de outras linguagens.
E só corrigindo, internal não se refere ao namespace, mas ao assembly.
Ou seja, todas as classes que estiverem na mesma dll, irão enxergar o internal, mesmo que sejam de namespaces diferentes.
O equivalente ao assembly do C# no Java é o .jar. Sinto muita falta de um modificador assim em Java.