2013-02-06 17 views
7

Secondo MSDN:i membri della classe VB.NET pubbliche per default

accesso pubblico è il livello normale per un elemento di programmazione quando si non è necessario limitare l'accesso ad essa. Si noti che il livello di accesso di un elemento dichiarato all'interno di un'interfaccia, modulo, classe o struttura predefinito è Pubblico se non lo si dichiara diversamente.

Quindi, se io dichiaro un metodo di classe in VB.NET senza specificare un modificatore di accesso, allora è pubblico per default:

Sub DoSomething() 

End Sub 

Questo è folle! Voglio che i membri siano privati ​​per impostazione predefinita e solo quelli specificatamente contrassegnati come pubblici per essere visibili al di fuori della classe. Come in C# ... Come modifico questo comportamento?

+6

perché sta scrivendo 'privato' così oneroso? –

+13

Personalmente ritengo che i modificatori di accesso impliciti siano una cattiva idea nel suo complesso. Il codice sarà molto più chiaro per gli altri lettori se includi sempre esplicitamente il modificatore di accesso. –

+0

@MitchWheat - filosofia di programmazione desiderata: le impostazioni predefinite della lingua devono essere "conservative"; non va bene per un tipo per esporre cose che non è destinato ad essere esposto. RICHIEDERE a un programmatore di fare qualcosa, che non dovrebbe aver bisogno di fare, è una soluzione sub-ottimale. Ecco a cosa servono i computer: per renderlo più facile alle persone. Certo, è possibile risolvere questo problema a livello di IDE: fare in modo che l'IDE aggiunga automaticamente "Privato", a meno che non venga specificato un modificatore. – ToolmakerSteve

risposta

10

Questo è folle! Voglio che i membri siano privati ​​di default

Come già commentato da Fredrik, è necessario fornire sempre modificatori di accesso espliciti.

Il codice sarà molto più chiaro per gli altri lettori se è sempre includere esplicitamente il modificatore di accesso.

Suppongo che ciò sia dovuto alla compatibilità verso il basso o agli sviluppatori che non hanno alcuna familiarità con i modificatori di accesso.

Ma hai ragione, come in C# vorrei suggerire di rendere tutto il più privato possibile per impostazione predefinita. Puoi renderlo più pubblico quando necessario.

Declaration Contexts and Default Access Levels (VB.NET)

Qualsiasi idea di come modificare questo comportamento?

Non penso che sia possibile specificare il modificatore di accesso predefinito da qualche parte in Visual Studio. Si potrebbe provare a creare un modello di classe che viene qui suggerito (non testato):

Visual C# 2010 Express: Specify default access modifier for new classes?

Problemi correlati