Em geral, a ideia de um Class
ou Module
por arquivo é algo que notei pela primeira vez em Java (acredito que seja / foi um requisito lá). O C # continuou como uma sugestão, e o VB.NET provavelmente agora tem a mesma sugestão em algum lugar.
No entanto, como os designers do VB.NET decidiram que você só pode ter métodos de extensão em Modules
, você forneceu um exemplo em que faz sentido que outra unidade de código esteja tão intimamente relacionada a outro Class
incluí-lo no mesmo arquivo.
Claro que, com o conceito de Partial
classes e módulos, você tem a ideia oposta de dividir unidades individuais em vários arquivos disponíveis também.
E BTW, esse conceito normalmente significa que Module
seria nomeado TestExtensions
: -)
Para o seu "namespace"? observa em sua pergunta: VB.NET fornece um namespace baseado em projeto para seus Modules
e Classes
, então suas classes agora são nomeadas ProjectNamespace.UnitName
. Se você forneceu um
Namespace SomeNamespace
...
End Namespace
as unidades incluídas seriam nomeadas ProjectNamespace.SomeNamespace.UnitName
.
Você também pode ter vários Namespaces
em um arquivo e pode substituir o ProjectNamespace
por Global.
:
Namespace Global.TopLevelNamespace
...
End Namespace
Relendo sua pergunta e anotando também a nota "(Módulo?)", estou supondo que você está realmente perguntando qual é o termo "formal" do VB.NET para unidades de código que incluem Class
e Module
e o termo semelhante para um arquivo de código. Como o Módulo do .NET é tão frequentemente equivalente a uma Assembléia, a maioria das pessoas saberia o que você quis dizer se você se referiu a unidades de código "Namespace-level" como "módulos" e arquivos de origem são apenas "arquivos". (Pode haver outros locais que forneçam nomes alternativos, mas eu baseei isso em Introdução da Microsoft a>.)