Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kesalahan dan peringatan yang terkait dengan
Anda dapat mengalami kesalahan berikut terkait dengan deklarasi jenis partial dan anggota partial:
- CS0260: Pengubah parsial hilang pada deklarasi jenis; deklarasi parsial lain dari jenis ini ada
- CS0261: Deklarasi parsial jenis harus semua kelas, semua struct, atau semua antarmuka
- CS0262: Deklarasi parsial jenis memiliki pengubah aksesibilitas yang bertentangan
- CS0263: Deklarasi parsial jenis tidak boleh menentukan kelas dasar yang berbeda
- CS0264: Deklarasi parsial jenis harus memiliki nama parameter jenis yang sama dalam urutan yang sama
- CS0265: Deklarasi parsial jenis memiliki batasan yang tidak konsisten untuk parameter jenis 'parameter jenis'
-
CS0267: Pengubah '
partial' hanya dapat muncul segera sebelum 'class', 'record', 'struct', '', 'interface', atau metode atau jenis pengembalian properti. - CS0282: Tidak ada pengurutan yang ditentukan antara bidang dalam beberapa deklarasi kelas parsial atau 'jenis' struktur. Untuk menentukan pengurutan, semua bidang instans harus berada dalam deklarasi yang sama.
-
CS0501: 'fungsi anggota' harus mendeklarasikan isi karena tidak ditandai
abstract, ,externataupartial -
CS0750: Anggota parsial tidak dapat memiliki pengubah '
abstract'. -
CS0751: Anggota parsial harus dinyatakan dalam parsial
classatau parsialstruct - CS0754: Anggota parsial mungkin tidak secara eksplisit menerapkan metode antarmuka.
- CS0755: Kedua deklarasi metode parsial harus berupa metode ekstensi atau tidak mungkin metode ekstensi.
- CS0756: Metode parsial mungkin tidak memiliki beberapa deklarasi yang mendefinisikan.
- CS0757: Metode parsial mungkin tidak memiliki beberapa deklarasi penerapan.
- CS0759: Tidak ada deklarasi yang didefinisikan yang ditemukan untuk menerapkan deklarasi metode parsial.
-
CS0761: Deklarasi metode parsial memiliki batasan
method<T>parameter jenis yang tidak konsisten. - CS0762: Tidak dapat membuat delegasi dari metode karena merupakan metode parsial tanpa menerapkan deklarasi
-
CS0763: Kedua deklarasi metode parsial harus
staticatau tidak mungkinstatic. -
CS0764: Kedua deklarasi metode parsial harus
unsafeatau tidak mungkinunsafe - CS1067: Deklarasi parsial harus memiliki nama parameter jenis dan pengubah varians yang sama dalam urutan yang sama.
- CS8142: Kedua deklarasi anggota parsial harus menggunakan nama elemen tuple yang sama.
- CS8663: Kedua deklarasi anggota parsial harus dibaca secara baca-saja atau tidak mungkin dibaca
- CS8796: Metode parsial harus memiliki pengubah aksesibilitas karena memiliki jenis pengembalian yang tidak batal.
- CS8795: Anggota parsial harus memiliki bagian implementasi karena memiliki pengubah aksesibilitas.
-
CS8797: Metode parsial harus memiliki pengubah aksesibilitas karena memiliki parameter ''
out. - CS8799: Kedua deklarasi anggota parsial harus memiliki pengubah aksesibilitas yang identik.
-
CS8800: Kedua deklarasi anggota parsial harus memiliki kombinasi yang identik dari
virtual, ,overridesealed, dannewpengubah. - CS8817: Kedua deklarasi metode parsial harus memiliki jenis pengembalian yang sama.
-
CS8818: Deklarasi anggota parsial harus memiliki nilai pengembalian yang
refcocok. - CS8863: Hanya satu deklarasi jenis parsial yang mungkin memiliki daftar parameter
-
CS8988: Pengubah
scopedparameter tidak cocok dengan definisi parsial. - CS9248: Properti parsial harus memiliki bagian implementasi.
- CS9249: Properti parsial harus memiliki bagian definisi.
- CS9250: Properti parsial mungkin tidak memiliki beberapa deklarasi yang mendefinisikan, dan tidak dapat menjadi properti otomatis.
- CS9251: Properti parsial mungkin tidak memiliki beberapa deklarasi penerapan
- CS9252: Pengakses properti harus diimplementasikan karena dideklarasikan pada bagian definisi
- CS9253: Pengakses properti tidak mengimplementasikan aksesor apa pun yang dideklarasikan pada bagian definisi
- CS9254: Aksesor properti harus cocok dengan bagian definisi
- CS9255: Kedua deklarasi properti parsial harus memiliki jenis yang sama.
- CS9256: Deklarasi properti parsial memiliki perbedaan tanda tangan.
- CS9257: Kedua deklarasi properti parsial harus diperlukan atau tidak diperlukan
- CS9275: Anggota parsial harus memiliki bagian implementasi.
- CS9276: Anggota parsial harus memiliki bagian definisi.
- CS9277: Anggota parsial mungkin tidak memiliki beberapa deklarasi yang mendefinisikan.
- CS9278: Anggota parsial tidak boleh memiliki beberapa deklarasi penerapan.
- CS9279: Kejadian parsial tidak dapat memiliki inisialisasi.
- CS9280: Hanya deklarasi penerapan konstruktor parsial yang dapat memiliki penginisialisasi.
Bagian berikut menjelaskan penyebab dan perbaikan untuk kesalahan dan peringatan ini.
Jenis parsial
- CS0260: Pengubah parsial hilang pada deklarasi jenis; deklarasi parsial lain dari jenis ini ada
- CS0261: Deklarasi parsial tipe harus semua kelas, semua struct, atau semua antarmuka
- CS0262: Deklarasi jenis parsial memiliki pengubah aksesibilitas yang bertentangan
- CS0263: Deklarasi parsial jenis tidak boleh menentukan kelas dasar yang berbeda
- CS0264: Deklarasi parsial jenis harus memiliki nama parameter jenis yang sama dalam urutan yang sama
- CS0265: Deklarasi parsial jenis memiliki batasan yang tidak konsisten untuk parameter jenis 'parameter jenis'
-
CS0267: Pengubah '
partial' hanya dapat muncul segera sebelum 'class', 'record', 'struct', '', 'interface', atau metode atau jenis pengembalian properti. - CS8863: Hanya satu deklarasi jenis parsial yang mungkin memiliki daftar parameter
Deklarasi jenis parsial Anda dapat menyebabkan pengkompilasi mengeluarkan peringatan berikut:
-
CS0282: Tidak ada pengurutan yang ditentukan antara bidang dalam beberapa deklarasi parsial
classataustruct'jenis'. Untuk menentukan pengurutan, semua bidang instans harus berada dalam deklarasi yang sama.
Kesalahan ini terjadi ketika deklarasi jenis parsial Anda melanggar aturan untuk jenis parsial.
- Tambahkan pengubah
partialke semua deklarasi jenis , karena setelah Anda membagi jenis di beberapa deklarasi, setiap bagian harus menyertakan kata kunci (CS0260). - Pastikan semua deklarasi menggunakan kata kunci jenis yang sama, karena mencampur
class, ,structrecord, daninterfacedi bagian yang berbeda dari jenis yang sama tidak diizinkan (CS0261). Anda harus memastikan pengubah akses yang konsisten di semua deklarasi, seperti membuat semua bagianpublicatau semua bagianinternal, karena aksesibilitas yang bertentangan pada deklarasi yang berbeda menciptakan ambiguitas tentang visibilitas jenis yang dimaksudkan (CS0262). - Verifikasi bahwa semua deklarasi menentukan kelas dasar yang sama, karena jenis hanya dapat mewarisi dari satu kelas dasar, sehingga beberapa kelas dasar yang berbeda konflik (CS0263).
- Untuk jenis parsial generik, pastikan semua deklarasi mencantumkan parameter jenis yang sama dalam urutan yang sama, karena nama parameter jenis harus cocok persis di semua bagian (CS0264).
- Verifikasi bahwa batasan pada parameter jenis tetap konsisten di semua deklarasi, karena batasan yang tidak konsisten akan membuat ambiguitas tentang jenis apa yang dapat digunakan untuk parameter jenis (CS0265).
- Tempatkan
partialkata kunci segera sebelum kata kunci jenis (class, ,recordstruct, atauinterface), karena sintaks bahasa memerlukan urutan khusus ini (CS0267). - Deklarasikan konstruktor utama hanya pada satu deklarasi parsial, karena beberapa konstruktor utama akan bertentangan tentang parameter konstruktor dan logika inisialisasi mana yang akan digunakan (CS8863).
Saat Anda mendeklarasikan bidang dalam beberapa file untuk jenis struct parsial, Anda harus mengonsolidasikan semua deklarasi bidang ke dalam satu file jika urutan tata letak memori penting, karena pengkompilasi tidak dapat menjamin pengurutan tertentu saat bidang dibagi di beberapa file (CS0282). Atau, jika urutan tata letak tidak masalah, Anda dapat menerapkan System.Runtime.InteropServices.StructLayoutAttribute dengan LayoutKind.Auto nilai untuk memungkinkan runtime untuk mengoptimalkan tata letak secara otomatis.
Anggota parsial
-
CS0750: Anggota parsial tidak dapat memiliki pengubah '
abstract'. -
CS0751: Anggota parsial harus dinyatakan dalam parsial
classatau parsialstruct - CS0754: Anggota parsial mungkin tidak secara eksplisit menerapkan metode antarmuka.
-
CS0763: Kedua deklarasi metode parsial harus
staticatau tidak mungkinstatic. -
CS0764: Kedua deklarasi metode parsial harus
unsafeatau tidak mungkinunsafe - CS8142: Kedua deklarasi anggota parsial harus menggunakan nama elemen tuple yang sama.
- CS8663: Kedua deklarasi anggota parsial harus dibaca secara baca-saja atau tidak mungkin dibaca
- CS8799: Kedua deklarasi anggota parsial harus memiliki pengubah aksesibilitas yang identik.
-
CS8800: Kedua deklarasi anggota parsial harus memiliki kombinasi yang identik dari
virtual, ,overridesealed, dannewpengubah. -
CS8818: Deklarasi anggota parsial harus memiliki nilai pengembalian yang
refcocok. -
CS8988: Pengubah
scopedparameter tidak cocok dengan definisi parsial. - CS9275: Anggota parsial wajib memiliki bagian implementasi.
- CS9276: Anggota parsial harus memiliki bagian definisi.
- CS9277: Anggota parsial tidak boleh memiliki banyak deklarasi definisi.
- CS9278: Anggota parsial tidak dapat memiliki beberapa deklarasi implementasi.
Kesalahan ini terjadi ketika deklarasi anggota parsial Anda melanggar aturan untuk metode parsial, properti, pengindeks, dan peristiwa.
- Hapus pengubah
abstractdari anggota parsial, karena anggota abstrak memerlukan kelas turunan untuk memberikan implementasi. Persyaratan ini bertentangan dengan pola anggota parsial di mana implementasi disediakan dalam deklarasi penerapan (CS0750). - Nyatakan anggota parsial dalam jenis yang menyertakan pengubah
partial, karena anggota parsial hanya dapat ada dalam jenis parsial (CS0751). - Hapus implementasi antarmuka eksplisit dari anggota parsial, karena pola deklarasi dua bagian tidak kompatibel dengan sintaks implementasi antarmuka eksplisit (CS0754).
- Sertakan atau hilangkan
staticpengubah secara konsisten dalam kedua deklarasi, karena mencampur anggota statis dan instans akan membuat ambiguitas tentang bagaimana anggota dipanggil (CS0763). - Sertakan atau hilangkan
unsafepengubah secara konsisten dalam kedua deklarasi, karena konteks tidak aman yang tidak konsisten dapat menciptakan masalah keamanan atau kesalahan kompilasi (CS0764). - Gunakan nama elemen tuple yang identik dalam kedua deklarasi, karena nama yang berbeda akan menciptakan kebingungan tentang nama mana yang tersedia dalam mengonsumsi kode (CS8142).
- Sertakan atau hilangkan modifikator
readonlysecara konsisten dalam kedua deklarasi, karena mencampur deklarasi hanya-baca dan non-hanya-baca menyebabkan ambiguitas mengenai apakah anggota dapat memodifikasi status instans (CS8663). - Gunakan pengubah aksesibilitas yang identik (seperti
public, ,private,protectedatauinternal) pada kedua deklarasi, karena tingkat aksesibilitas yang berbeda akan bertentangan dengan visibilitas anggota (CS8799). - Terapkan kombinasi yang sama dari
virtual,override,sealed, dannewpengubah untuk kedua deklarasi, karena pengubah ini mengontrol warisan dan perilaku polimorfisme yang harus konsisten (CS8800). - Gunakan pengubah pengembalian nilai yang
refcocok di kedua deklarasi, karena perilaku return-by-reference yang tidak konsisten akan membuat masalah keamanan tipe (CS8818). - Terapkan pengubah
scopedsecara konsisten ke parameter di kedua deklarasi, karena pengubah ini mengontrol masa pakai parameter ref dan harus cocok untuk memastikan keamanan memori (CS8988). - Berikan deklarasi implementasi untuk setiap anggota parsial yang memiliki deklarasi yang mendefinisikannya, karena anggota parsial memerlukan kedua bagiannya untuk lengkap (CS9275, CS9276).
- Pastikan setiap anggota parsial memiliki tepat satu deklarasi yang mendefinisikan dan satu deklarasi penerapan, karena beberapa deklarasi akan menciptakan ambiguitas tentang definisi atau implementasi mana yang akan digunakan (CS9277, CS9278).
Metode parsial
-
CS0501: 'fungsi anggota' harus mendeklarasikan isi karena tidak ditandai
abstract, ,externataupartial - CS0755: Kedua deklarasi metode parsial harus berupa metode ekstensi atau tidak mungkin metode ekstensi.
- CS0756: Metode parsial mungkin tidak memiliki beberapa deklarasi yang mendefinisikan.
- CS0757: Metode parsial mungkin tidak memiliki beberapa deklarasi penerapan.
- CS0759: Tidak ada deklarasi yang didefinisikan yang ditemukan untuk menerapkan deklarasi metode parsial.
-
CS0761: Deklarasi metode parsial memiliki batasan
method<T>parameter jenis yang tidak konsisten. - CS0762: Tidak dapat membuat delegasi dari metode karena merupakan metode parsial tanpa menerapkan deklarasi
- CS1067: Deklarasi parsial harus memiliki nama parameter jenis dan pengubah varians yang sama dalam urutan yang sama.
- CS8796: Metode parsial harus memiliki pengubah aksesibilitas karena memiliki jenis pengembalian yang tidak batal.
- CS8795: Anggota parsial harus memiliki bagian implementasi karena memiliki pengubah aksesibilitas.
-
CS8797: Metode parsial harus memiliki pengubah aksesibilitas karena memiliki parameter ''
out. -
CS8798: Metode parsial harus memiliki pengubah aksesibilitas karena memiliki pengubah '
virtual', 'override', 'sealed', 'new', atau ''extern. - CS8817: Kedua deklarasi metode parsial harus memiliki jenis pengembalian yang sama.
Kesalahan ini terjadi ketika deklarasi metode parsial Anda melanggar aturan untuk metode parsial.
- Tambahkan pengubah
partialke deklarasi metode, atau berikan isi metode, karena metode tanpa implementasi harus ditandai sebagaiabstract, ,externataupartial(CS0501). - Pastikan kedua deklarasi menyertakan atau menghilangkan sintaks metode ekstensi (
thispengubah pada parameter pertama) secara konsisten, karena pencampuran ekstensi dan deklarasi non-ekstensi membuat tanda tangan metode yang tidak kompatibel (CS0755). - Hapus deklarasi pendefinisian duplikat (deklarasi tanpa badan metode), karena setiap metode parsial hanya dapat memiliki satu definisi (CS0756).
- Hapus deklarasi penerapan duplikat (deklarasi dengan badan metode), karena setiap metode parsial hanya dapat memiliki satu implementasi (CS0757).
- Tambahkan deklarasi pendefinisian yang sesuai untuk setiap deklarasi penerapan, karena setiap metode parsial yang memiliki isi harus memiliki deklarasi penanda yang cocok tanpa isi (CS0759).
- Pastikan batasan parameter jenis cocok di kedua deklarasi, karena batasan yang tidak konsisten membuat ambiguitas tentang jenis mana yang valid untuk metode generik (CS0761).
- Berikan deklarasi penerapan sebelum membuat delegasi dari metode , karena delegasi memerlukan implementasi metode konkret untuk referensi (CS0762).
- Untuk metode parsial generik, pastikan kedua deklarasi menggunakan nama parameter jenis dan pengubah varians yang sama dalam urutan yang sama, karena tanda tangan generik yang tidak cocok membuat deklarasi metode yang tidak kompatibel (CS1067).
- Tambahkan pengubah aksesibilitas eksplisit (seperti
public,private,protected, atauinternal) ketika metode mengembalikan tipe selainvoid, karena metode parsial yang bukan void harus memiliki tingkat aksesibilitas yang ditentukan agar dapat dipanggil dari kode lain (CS8796). - Berikan deklarasi penerapan ketika pengubah aksesibilitas ditentukan, karena metode parsial yang dapat diakses harus memiliki implementasi yang akan dipanggil (CS8795).
- Tambahkan pengubah aksesibilitas eksplisit ketika metode memiliki
outparameter, karena metode dengan parameter luar harus memiliki aksesibilitas yang ditentukan agar dapat dipanggil (CS8797). - Tambahkan pengubah aksesibilitas eksplisit saat menggunakan
virtual,override,sealed,new, atauextern, karena pengubah ini memengaruhi visibilitas metode dan memerlukan spesifikasi aksesibilitas eksplisit (CS8798). - Pastikan kedua deklarasi menentukan jenis pengembalian yang sama, karena jenis pengembalian yang berbeda membuat tanda tangan metode yang tidak kompatibel (CS8817).
Properti parsial
- CS9248: Properti parsial harus memiliki bagian implementasi.
- CS9249: Properti parsial harus memiliki bagian definisi.
- CS9250: Properti parsial mungkin tidak memiliki beberapa deklarasi yang mendefinisikan, dan tidak dapat menjadi properti otomatis.
- CS9251: Properti parsial mungkin tidak memiliki beberapa deklarasi penerapan
- CS9252: Pengakses properti harus diimplementasikan karena dideklarasikan pada bagian definisi
- CS9253: Pengakses properti tidak mengimplementasikan aksesor apa pun yang dideklarasikan pada bagian definisi
- CS9254: Aksesor properti harus cocok dengan bagian definisi
- CS9255: Kedua deklarasi properti parsial harus memiliki jenis yang sama.
- CS9257: Kedua deklarasi properti parsial harus diperlukan atau tidak diperlukan
Deklarasi properti parsial atau pengindeks Anda dapat menyebabkan pengkompilasi mengeluarkan peringatan berikut:
- CS9256: Deklarasi properti parsial memiliki perbedaan tanda tangan.
Kesalahan dan peringatan ini terjadi ketika properti parsial atau deklarasi pengindeks Anda melanggar aturan untuk properti parsial.
- Berikan deklarasi penerapan untuk setiap properti parsial yang deklarasinya mendefinisikan, karena properti parsial mengharuskan agar kedua bagiannya lengkap (CS9248).
- Berikan deklarasi yang mendefinisikan untuk setiap deklarasi penerapan properti parsial, karena setiap implementasi harus memiliki definisi yang sesuai (CS9249).
- Hapus deklarasi pendefinisian duplikat dan hindari menggunakan sintaks properti otomatis dalam deklarasi penerapan, karena setiap properti parsial hanya dapat memiliki satu definisi dan implementasinya harus menyertakan badan aksesor eksplisit (CS9250).
- Hapus deklarasi penerapan duplikat, karena setiap properti parsial hanya dapat memiliki satu implementasi (CS9251).
- Terapkan semua pengakses yang dinyatakan dalam deklarasi yang mendefinisikan, karena deklarasi penerapan harus menyediakan badan untuk setiap pengakses (get, set, atau init) yang ditentukan dalam definisi (CS9252).
- Hapus pengakses dari deklarasi penerapan yang tidak dideklarasikan dalam deklarasi yang mendefinisikan, karena Anda hanya dapat mengimplementasikan aksesor yang dideklarasikan dalam bagian definisi (CS9253).
- Pastikan tanda tangan aksesor cocok antara kedua deklarasi, termasuk jenis aksesor (dapatkan, atur, atau init) dan pengubah apa pun, karena definisi aksesor yang tidak konsisten membuat deklarasi properti yang tidak kompatibel (CS9254).
- Pastikan kedua deklarasi menentukan jenis properti yang sama, karena berbagai jenis membuat tanda tangan properti yang tidak kompatibel (CS9255).
- Pastikan kedua deklarasi menyertakan atau menghilangkan
requiredpengubah secara konsisten, karena mencampur deklarasi yang mewajibkan dan tidak mewajibkan dapat menimbulkan ambiguitas tentang apakah properti harus diinisialisasi (CS9257). - Tinjau dan perbaiki ketidakcocokan tanda tangan antara deklarasi deklarasi dan penerapan, karena perbedaan pengubah aksesibilitas, jenis pengembalian, atau daftar parameter (untuk pengindeks) dapat menyebabkan perilaku tak terduga (CS9256).
Peristiwa parsial dan konstruktor
- CS9279: Kejadian parsial tidak dapat memiliki inisialisasi.
- CS9280: Hanya deklarasi penerapan konstruktor parsial yang dapat memiliki penginisialisasi.
Anda mendeklarasikan penginisialisasi pada deklarasi yang mendefinisikan konstruktor parsial atau pada deklarasi event parsial. Hapus penginisialisasi.