2011-02-17 13 views
5

Ho letto in giro su internet e ho sentito gente direDifferenza tra accesso progettista e l'accesso modificatore

specificatori di accesso ::

Lo specificatore di accesso determina il modo in accessibile il campo è quello di codice in altre classi. L'accesso varia da totalmente accessibile a totalmente inaccessibile. Puoi facoltativamente dichiarare un campo con una parola chiave identificatore di accesso : pubblica, privata, o protetta.

modificatori di accesso ::

Opzionalmente si può dichiarare un campo con una parola chiave: modificatore di finale o volatile e/o statico e/o transitoria, astratto, ecc

C'è nessuna differenza? Poiché la maggior parte delle definizioni per i modificatori di accesso e gli specificatori di accesso indicano la stessa cosa ... che sembra così ambigua.

+0

Classe pubblica e dire Classe statica pubblica, non colpisce nulla – V4Vendetta

+0

Penso che non ci sia una parola chiave "transitoria" in C#. Viene utilizzato in J # per contrassegnare i campi non serializzabili. – kubal5003

risposta

6

In questo contesto, si può pensare di specificatori di accesso come prescrittori protezione - che specificano in cui una variabile è accessibile da. Al contrario, accedere ai modificatori sono completamente diversi; specificano come le variabili dovrebbero (o non dovrebbero) essere accessibili; per esempio. sola lettura, volatile, ecc.

Ad esempio, una variabile può essere pubblica ma di sola lettura oppure può essere privata e scrivibile - gli specificatori di accesso non hanno nulla a che fare con i modificatori.

Tuttavia, sono un po 'sorpreso che la terminologia è per C#, dal momento che Microsoft chiama in realtà public e private "access modifiers", e chiama volatile e readonly semplicemente "modifiers".

+0

Che è quello che sembra anche a me (ho praticamente affermato la stessa cosa nella mia domanda). Sarebbe più utile se potessi citare le tue fonti. –

2

Per quanto posso vedere, non vi è alcuna differenza tra i termini. La documentazione MS C++ ad esempio utilizza entrambi i termini per la stessa cosa.

+0

Sì, esattamente! Anche msdn usa i termini in modo intercambiabile. –

1

Credo che uno specificatore di accesso determini la visibilità per un determinato campo/metodo.

Un modificatore di accesso fornisce ulteriori informazioni sul comportamento e sull'utilizzo di tale campo. Puoi dire se il campo richiede o meno un oggetto istanziato o se può essere sovrascritto.

2

Fare riferimento al documento MSDN C# 4.0, penso che tu abbia frainteso qualcosa. C# non ha parole come "specificatore di accesso" ma chiama modificatori o modificatori di accesso per i modificatori che usano per controllare il livello di accesso.

Spero che questo aiuto.

Aggiornamento

credo, questa domanda come voi mi chiedete che cosa differenza tra pacchetto e spazio dei nomi è. Dipende da quale lingua o professore usi o credi.Niente è sbagliato nello stesso tipo di questa domanda.

Dall'esperienza (e dal significato delle parole), il modificatore di accesso dovrebbe significare controllare l'accesso come pubblico o privato. D'altra parte, gli specificatori di accesso dovrebbero essere la super classe di modificatore di accesso che significa che include altre parole chiave come statico, finale, readonly o qualcosa di simile in esso.

PS. Sia C#, VB.NET e Java, usano il modificatore di accesso per parole chiave come pubblico o privato. D'altra parte, C++ usa l'identificatore di accesso per la stessa parola chiave.

Modifiers (C# 4.0)

Access Levels in Visual Basic (VB.NET 2010)

Controlling Access to Members of a Class (Java)

Access Specifiers (C++ 2010)

+0

In realtà, ho trovato anche questo. Sopprimerò questo. Ma mi riferivo al termine in generale e non al C#. (Nonostante il tag C#. Scusate per quello.) –

+0

Si prega di consultare il mio aggiornamento. Dovrebbe essere una risposta abbastanza buona per riassumere la tua domanda senza risposta. : D –

0

specificatori di accesso di una classe indica quello che altre variabili di classe possono accedere nel presente di classe. I modificatori di accesso di una classe indicano la stessa funzionalità degli specificatori di accesso