Saya mencoba mencari referensi untuk visibilitas default dari berbagai aspek C #. Jenis kelas, bidang, metode, enum, dll.
Dapatkah seseorang memberikan daftar ini bersama dengan visibilitas default mereka (yaitu, tidak ada pengubah awalan)?
Saya mencoba mencari referensi untuk visibilitas default dari berbagai aspek C #. Jenis kelas, bidang, metode, enum, dll.
Dapatkah seseorang memberikan daftar ini bersama dengan visibilitas default mereka (yaitu, tidak ada pengubah awalan)?
Jawaban:
Semua informasi yang Anda cari dapat ditemukan di sini dan di sini (terima kasih Reed Copsey ):
Dari tautan pertama:
Kelas dan struct yang dideklarasikan secara langsung di dalam namespace (dengan kata lain, yang tidak bersarang di dalam kelas atau struct lainnya) dapat berupa publik atau internal. Internal adalah default jika tidak ada pengubah akses yang ditentukan .
...
Tingkat akses untuk anggota kelas dan anggota struct , termasuk kelas dan struct yang bersarang, bersifat pribadi secara default .
...
antarmuka standar untuk akses internal .
...
Delegasi berperilaku seperti kelas dan struct. Secara default, mereka memiliki akses internal ketika dideklarasikan secara langsung dalam namespace, dan akses pribadi saat bersarang .
Dari tautan kedua:
Tipe tingkat atas , yang tidak bersarang di tipe lain, hanya dapat memiliki aksesibilitas internal atau publik. The aksesibilitas default untuk jenis internal .
Dan untuk tipe bersarang:
Anggota aksesibilitas anggota Default ---------- ---------------------------- enum publik kelas pribadi antarmuka publik struct pribadi
Public. Enumanggota juga Public. Mungkin kurang membingungkan untuk hanya menggunakan ruang lingkup eksplisit dalam kasus Anda karena kemungkinan tinggi akan diterjemahkan atau dibaca oleh pengembang c # di beberapa titik. Sayangnya, pembuatan kode di vb.net tidak melakukan ini untuk Anda.
Dari MSDN:
Tipe tingkat atas , yang tidak bersarang di tipe lain, hanya dapat memiliki internalatau publicaksesibilitas. Aksesibilitas default untuk jenis ini adalah internal.

Sumber: Tingkat aksesibilitas (C # Referensi) (6 Desember th 2017)
Secara default, pengubah akses untuk kelas adalah internal. Itu berarti mengatakan, kelas dapat diakses dalam majelis yang sama. Tetapi jika kita ingin kelas diakses dari majelis lain maka itu harus dipublikasikan.
[assembly:InternalsVisibleTo("Friend1b")]
Secara default adalah private. Kecuali mereka bersarang, kelasnya internal.
enum members are private by default, so to use them outside the enum we should declare them as public. Bisakah Anda jelaskan mengapa buku itu bertentangan dengan apa yang Anda katakan? Terima kasih.