Se creo un nuovo file di classe, Visual Studio non lo rende pubblico per impostazione predefinita. Posso cambiare questo?Perché le mie classi sono private per impostazione predefinita in Visual Studio?
risposta
Ho sentito lamentele a riguardo, non credo che sia un'opzione che può essere cambiata.
Intendi dire che la classe stessa non è disponibile in altre classi? O intendi che tutti i contenuti del file sono predefiniti come accesso privato?
Se si desidera che la classe sia visibile in altre classi, è necessario assicurarsi che lo spazio dei nomi sia visibile nell'altra classe (con la parola chiave "using" in C# o semplicemente averli nello stesso spazio dei nomi) .
Non so di quale lingua si parli, ma in C# tutti i metodi, le variabili membro, le proprietà ecc sono predefinite come private. Se vuoi che siano pubblici, devi specificarlo individualmente per ciascun membro. Non penso sia possibile modificare questo comportamento in C#.
Esistono altri problemi con i modelli di codice predefiniti: ad esempio, non sono compatibili con StyleCop, poiché le righe "using" si trovano all'esterno della dichiarazione dello spazio dei nomi.
È possibile utilizzare ReSharper per creare i file di classe dai modelli, consentendo di inserire qualsiasi codice nel modello. Questo è quello che faccio :)
Per impostazione predefinita una classe senza un identificatore di accesso è interna e un membro è impostato su privato. Ciò mantiene la visibilità il più limitata possibile e quindi aumenta l'incapsulamento.
Rendere pubblica una nuova classe senza nemmeno pensare di rompere l'intera idea di incapsulamento.
Il modello di classe che VS utilizza per creare una nuova classe si possono trovare in questo file zip (in caso di CSharp):
C: \ Programmi \ Microsoft Visual Studio 8 \ Common7 \ IDE \ ItemTemplates \ CSharp \ 1033 \ Class.zip o C: \ Programmi \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033 quando si utilizza VS Orcas
Aprire il file zip, aggiungere la parola chiave pubblica, salvare e hai finito. Ogni volta che aggiungi una classe sarà pubblica. Spero che questo ti aiuti.
Non credo che si può cambiare un'opzione in VS in modo che tutte le classi create sono pubblici di default (ma guarderò dentro.)
Vorrei pensare che, a meno che hai una necessità molto specifica che tutte le tue classi siano dichiarate pubbliche (e non posso pensare a nessuna) che tu debba lasciare il default così com'è. Ciò consente di prendere decisioni su quali siano le classi pubbliche e quali dovrebbero rimanere interne. A mio parere, una buona opzione di progettazione imporrebbe che le classi vengano dichiarate "interne" per impostazione predefinita.
- 1. Perché le classi in Java non sono clonabili per impostazione predefinita
- 2. Visual Studio: perché i numeri di riga sono disattivati per impostazione predefinita?
- 3. Perché le mie notifiche locali non hanno audio attivo per impostazione predefinita in iOS 7?
- 4. perché i costruttori non sono espliciti per impostazione predefinita?
- 5. Dove sono le mie lezioni di System.Management. *?
- 6. Posso monitorare solo le mie attività TODO in Visual Studio?
- 7. Perché le mie importazioni non sono riconosciute
- 8. Perché le variabili protette non sono consentite per impostazione predefinita in Checkstyle?
- 9. Perché le variabili in Java non sono volatili per impostazione predefinita?
- 10. Perché DoubleBuffered è disattivato per impostazione predefinita?
- 11. Quali sono le funzionalità più abusate in Visual Studio/C#?
- 12. Come comprimere tutte le classi che delinea in Visual Studio
- 13. Le costanti private sono possibili in PHP?
- 14. Perché non sono le variabili macro SAS Ambito locale per impostazione predefinita?
- 15. Perché le prese di riconoscimento dei gesti sono potenti per impostazione predefinita
- 16. Visual Studio non trova le mie sottoscrizioni di Azure
- 17. Visual studio ctrl + impostazione freccia
- 18. Come posso descrivere le stringhe mutabili quando le stringhe sono immutabili per impostazione predefinita?
- 19. Perché le mie visualizzazioni MVC sono state compilate con PDB?
- 20. Come dovrei nominare le mie classi CSS?
- 21. in C# sono metodi privati per impostazione predefinita?
- 22. perché lo studio visivo elimina le mie classi quando aggiorno il modello di struttura dell'entità
- 23. Le entità sono memorizzate nella cache in jpa per impostazione predefinita?
- 24. Impostazione SOIL in Visual Studio 2010
- 25. Perché 'char' è firmato per impostazione predefinita in C++?
- 26. 'Friend WithEvents' in Visual Basic vs. 'private' in C#
- 27. Visual Studio 2010 Professional: strumento diagramma classi
- 28. Impostazione della pagina predefinita per la configurazione del server ASP.NET (Visual Studio)
- 29. Perché le classi statiche sono sigillate?
- 30. Perché le classi annidate sono "ereditate"?
Questo sembra essere un duplicato esatto di http://stackoverflow.com/questions/39903/vs-net-defaults-to-private-class e tale domanda ha anche una risposta accettata. –