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.
Artikel ini membahas kesalahan pengkompilasi berikut:
- CS0132: 'constructor': konstruktor statis harus tanpa parameter.
- CS0514: konstruktor statis tidak dapat memiliki panggilan konstruktor eksplisit 'this' atau 'base'.
- CS0515 : pengubah akses tidak diizinkan pada konstruktor statis.
- CS0516: Konstruktor 'konstruktor' tidak dapat memanggil dirinya sendiri.
- CS0517 : 'class' tidak memiliki kelas dasar dan tidak dapat memanggil konstruktor dasar.
- CS0522: struktur tidak dapat memanggil konstruktor kelas dasar.
- CS0526 : Antarmuka tidak boleh berisi konstruktor.
- CS0568: Structs tidak boleh berisi konstruktor tanpa parameter eksplisit.
- CS0573: 'deklarasi field': tidak dapat memiliki penginisialisasi field instance di dalam struct.
- CS0710: Kelas statis tidak dapat memiliki konstruktor instans.
- CS0768 : Constructor tidak dapat memanggil dirinya sendiri melalui konstruktor lain.
- CS1018: Kata kunci 'ini' atau 'dasar' diharapkan.
- CS8054: enum tidak boleh berisi konstruktor tanpa parameter eksplisit.
- CS8091: tidak dapat dijadikan eksternal dan memiliki inisialisasi konstruktor.
- CS8861: Daftar argumen tak terduga.
- CS8862: Konstruktor yang dideklarasikan dalam jenis dengan daftar parameter harus memiliki inisialisasi konstruktor 'ini'.
- CS8358: Tidak dapat menggunakan konstruktor atribut karena memiliki parameter 'in'.
- CS8867: Tidak ada konstruktor salinan yang dapat diakses yang ditemukan dalam jenis dasar '{0}'.
- CS8868: Konstruktor salinan dalam rekaman harus memanggil konstruktor salinan basis, atau konstruktor objek tanpa parameter jika rekaman mewarisi dari objek.
- CS8878: Konstruktor salinan '{0}' harus publik atau dilindungi karena catatan tidak disegel.
- CS8910: Konstruktor utama bertentangan dengan konstruktor salinan yang disintesis.
- CS8958: Konstruktor struct tanpa parameter harus 'publik'.
- CS8982: Konstruktor yang dideklarasikan dalam 'struct' dengan daftar parameter harus memiliki inisialisasi 'ini' yang memanggil konstruktor utama atau konstruktor yang dinyatakan secara eksplisit.
- CS8983: 'struct' yang memiliki penginisialisasi bidang harus menyertakan konstruktor yang dinyatakan secara eksplisit.
- CS9105: Tidak dapat menggunakan parameter konstruktor utama dalam konteks ini.
- CS9106: Pengidentifikasi ambigu antara jenis dan parameter dalam konteks ini.
- CS9108: Tidak dapat menggunakan parameter yang memiliki jenis seperti ref di dalam metode anonim, ekspresi lambda, ekspresi kueri, atau fungsi lokal.
-
CS9109 : Tidak dapat menggunakan parameter konstruktor utama
ref,out, atauindi dalam anggota instans. - CS9110: Tidak dapat menggunakan parameter konstruktor utama yang memiliki jenis seperti ref di dalam anggota instans.
- CS9111: metode Anonim, ekspresi lambda, ekspresi kueri, dan fungsi lokal di dalam anggota instans struct tidak dapat mengakses parameter konstruktor utama.
- CS9112 : Metode anonim, ekspresi lambda, ekspresi kueri, dan fungsi lokal di dalam struktur tidak dapat mengakses parameter konstruktor utama yang juga digunakan di dalam anggota instans.
- CS9114: Parameter konstruktor utama dari tipe readonly tidak dapat di-assign (kecuali dalam setter hanya-init dari tipe atau penginisialisasi variabel).
- CS9115: Parameter konstruktor utama dari tipe yang hanya dapat dibaca tidak dapat dikembalikan oleh referensi yang dapat ditulis.
- CS9116: Parameter konstruktor utama dari jenis baca-saja tidak dapat digunakan sebagai nilai ref atau out (kecuali dalam setter khusus init dari jenis atau penginisialisasi variabel).
- CS9117: Anggota parameter konstruktor utama dari tipe hanya-baca tidak dapat dimodifikasi (kecuali dalam setter yang hanya dapat diinisialisasi dari tipe atau dalam inisialisasi variabel).
- CS9118: Anggota parameter konstruktor utama dari jenis baca-saja tidak dapat dikembalikan oleh referensi yang dapat ditulis.
-
CS9119: Anggota parameter konstruktor utama dari tipe hanya-baca tidak dapat digunakan sebagai nilai
refatauout(kecuali dalam pengatur hanya-init atau penginisialisasi variabel). - CS9120: Tidak dapat mengembalikan parameter konstruktor utama berdasarkan referensi.
- CS9121: Parameter jenis konstruktor utama Struct mengakibatkan siklus pada tata letak struct.
- CS9122: Daftar parameter tak terduga.
- CS9136: Tidak dapat menggunakan parameter konstruktor utama dari tipe di dalam anggota instans.
Selain itu, peringatan berikut dibahas dalam artikel ini:
- CS0824: Constructor 'name' ditandai sebagai eksternal.
- CS9107: Parameter ditangkap ke dalam status jenis penutup dan nilainya juga diteruskan ke konstruktor dasar. Nilai juga dapat diambil oleh kelas dasar.
- CS9113 : Parameter belum dibaca.
- CS9124 : Parameter ditangkap ke dalam status jenis penutup dan nilainya juga digunakan untuk menginisialisasi bidang, properti, atau peristiwa.
- CS9179 : parameter konstruktor utama ditutupi oleh anggota dari dasar
- CS9018: Properti yang diimplementasikan secara otomatis dibaca terlebih dahulu sebelum ditetapkan secara eksplisit, menyebabkan pengaturan implisit sebelumnya ke 'default'.
- CS9019: Field dibaca sebelum ditetapkan secara eksplisit, menyebabkan penugasan implisit sebelumnya ke 'default'.
- CS9020: Objek 'ini' dibaca sebelum semua bidangnya ditetapkan, menyebabkan penetapan implisit 'default' sebelumnya ke bidang yang tidak ditetapkan secara eksplisit.
- CS9021: Kontrol dikembalikan kepada pemanggil sebelum properti yang di-otomatisasi ditetapkan secara eksplisit, mengakibatkan penetapan implisit dari 'default' sebelumnya.
- CS9022: Kontrol dikembalikan ke pemanggil sebelum field ditetapkan secara eksplisit, menyebabkan penetapan nilai implisit sebelumnya dari 'default'.
Konstruktor statis
- CS0132: 'constructor': konstruktor statis harus tanpa parameter.
- CS0514: Konstruktor statis tidak dapat memiliki panggilan konstruktor 'this' atau 'base' secara eksplisit.
- CS0515 : pengubah akses tidak diizinkan pada konstruktor statis.
Konstruktor statis menginisialisasi data statis untuk jenis. Untuk informasi selengkapnya, lihat Konstruktor statis.
Untuk memperbaiki kesalahan ini, pastikan deklarasi konstruktor statis Anda mengikuti aturan berikut:
- Hapus parameter apa pun dari deklarasi konstruktor statis, karena konstruktor statis harus tanpa parameter (CS0132). Jika Anda perlu meneruskan nilai inisialisasi, pertimbangkan untuk menggunakan bidang statis atau properti yang Anda tetapkan sebelum konstruktor statis berjalan.
- Hapus pengubah akses seperti
public,protected,private, atauinternaldari konstruktor statis, karena runtime mengontrol kapan konstruktor statis dieksekusi dan pengubah akses tidak bermakna (CS0515). - Hapus panggilan inisialisasi konstruktor
: base()atau: this()dari konstruktor statis, karena konstruktor statis tidak dapat menautkan ke konstruktor lain (CS0514). Runtime secara otomatis memanggil konstruktor statis kelas dasar jika ada.
Deklarasi konstruktor
- CS0526 : Antarmuka tidak dapat berisi konstruktor.
- CS0710: kelas statis tidak dapat memiliki konstruktor instans.
- CS8054 : enum tidak boleh berisi konstruktor tanpa parameter eksplisit.
- CS8358: Tidak dapat menggunakan konstruktor atribut karena memiliki parameter 'in'.
- CS8091: Konstruktor tidak dapat eksternal dan memiliki penginisialisasi konstruktor.
Anda hanya dapat mendeklarasikan konstruktor dalam jenis class dan struct, termasuk jenis record class serta jenis record struct. Untuk informasi selengkapnya, lihat Konstruktor instans.
Untuk memperbaiki kesalahan ini, coba saran berikut:
Pindahkan konstruktor ke class atau struct jenis, karena Anda tidak dapat mendeklarasikan konstruktor dalam interface atau enum jenis (CS0526, CS8054). Antarmuka menentukan kontrak tetapi tidak menyediakan logika inisialisasi, dan jenis enum memiliki nilai yang ditentukan pada waktu kompilasi.
Hapus konstruktor instans dari kelas statis, karena kelas statis tidak dapat dibuat dan oleh karena itu tidak dapat memiliki konstruktor instans (CS0710). Jika Anda memerlukan logika inisialisasi, gunakan konstruktor statis sebagai gantinya.
Ubah in parameter menjadi parameter pass-by-value di konstruktor atribut, karena konstruktor atribut tidak mendukung in pengubah parameter (CS8358). Runtime menginisiasi atribut dengan menggunakan refleksi, yang tidak mendukung pengubah in.
Hapus inisialisasi : base() atau : this() dari konstruktor extern, karena konstruktor ekstern tidak dapat dihubungkan ke konstruktor lain (CS8091). Implementasi konstruktor ekstern disediakan secara eksternal, sehingga penautan konstruktor tidak dimungkinkan.
Peringatan berikut dapat dihasilkan untuk deklarasi konstruktor:
- CS0824 : konstruktor ditandai sebagai eksternal.
Ketika konstruktor ditandai extern, pengkompilasi tidak dapat memverifikasi bahwa implementasi ada. Untuk menekan peringatan ini, berikan implementasi non-ekstern atau pastikan implementasi eksternal ditautkan dengan benar.
Konstruktor pada tipe struct
- CS0568: Structs tidak boleh berisi konstruktor tanpa parameter eksplisit.
- CS0573: 'deklarasi bidang': tidak dapat memiliki penginisialisasi bidang instans dalam struktur.
- CS8958: Konstruktor struct tanpa parameter harus 'publik'.
- CS8982: Konstruktor yang dideklarasikan dalam 'struct' dengan daftar parameter harus memiliki inisialisasi 'ini' yang memanggil konstruktor utama atau konstruktor yang dinyatakan secara eksplisit.
- CS8983: 'struct' dengan penginisialisasi bidang harus menyertakan konstruktor yang dideklarasikan secara eksplisit.
Jenis struktur memiliki aturan khusus untuk konstruktor dan menginisialisasi bidang. Untuk informasi selengkapnya, lihat bagian Inisialisasi struktur dan nilai default dari artikel Jenis struktur .
Untuk memperbaiki kesalahan ini, coba saran berikut:
- Tingkatkan ke C# 10 atau yang lebih baru jika Anda menemukan CS0568 atau CS0573, karena kesalahan ini hanya terjadi di versi C#yang lebih lama. C# modern memungkinkan konstruktor tanpa parameter eksplisit dan penginisialisasi bidang dalam struktur.
- Tambahkan pengubah akses
publicke konstruktor struct tanpa parameter, karena konstruktor struct tanpa parameter harus publik untuk memastikan ekspresidefaultdan alokasi array dapat menginisialisasi instans struct dengan benar (CS8958). -
: this(...)Tambahkan penginisialisasi ke konstruktor yang dinyatakan secara eksplisit dalam struktur yang memiliki konstruktor utama, karena semua konstruktor non-parameter harus dirantai ke konstruktor utama atau konstruktor lain yang dinyatakan secara eksplisit untuk memastikan inisialisasi yang konsisten (CS8982). - Nyatakan konstruktor eksplisit saat struktur Anda menggunakan penginisialisasi bidang, karena pengkompilasi memerlukan konstruktor eksplisit untuk memastikan penginisialisasi bidang dipanggil (CS8983). Konstruktor ini dapat menjadi konstruktor tanpa parameter dan tanpa isi.
Peringatan berikut menunjukkan bahwa bidang atau properti tidak ditetapkan secara eksplisit sebelum dibaca atau sebelum kontrol dikembalikan ke pemanggil:
- CS9018: Properti yang terimplementasi secara otomatis dibaca sebelum diberi nilai secara eksplisit, menyebabkan pemberian nilai implisit sebelumnya dari 'default'.
- CS9019: Kolom dibaca sebelum diberikan secara eksplisit, menyebabkan adanya penugasan implisit sebelumnya dari 'default'.
- CS9020: Objek 'this' dibaca sebelum semua bidangnya mendapatkan penetapan, menyebabkan penetapan implisit nilai 'default' ke bidang yang tidak ditetapkan secara eksplisit sebelumnya.
- CS9021: Kontrol dikembalikan kepada pemanggil sebelum properti yang diimplementasikan secara otomatis diatur secara eksplisit, menyebabkan sebelumnya terjadi pengaturan implisit ke 'default'.
- CS9022: Kontrol dikembalikan ke pemanggil sebelum bidang ditetapkan secara eksplisit, menyebabkan penetapan implisit sebelumnya dari 'default'.
Untuk membungkam peringatan ini, secara eksplisit menetapkan semua bidang dan properti yang diimplementasikan secara otomatis sebelum membacanya atau sebelum kontrol kembali dari konstruktor (CS9018, CS9019, CS9020, CS9021, CS9022). Ketika anggota yang tidak ditetapkan dibaca, kompilator secara implisit menetapkan default kepada mereka, yang mungkin bukan merupakan perilaku yang diinginkan.
Panggilan konstruktor dengan base dan this
- CS0516 : konstruktor tidak dapat memanggil dirinya sendiri.
- CS0517: 'class' tidak memiliki kelas dasar dan tidak dapat memanggil konstruktor dasar.
- CS0522: Structs tidak dapat memanggil konstruktor kelas dasar.
- CS0768: Constructor tidak dapat memanggil dirinya sendiri melalui konstruktor lain.
- CS1018: Kata kunci 'this' atau 'base' diharuskan.
Dengan menggunakan inisialisasi konstruktor, satu konstruktor dapat memanggil konstruktor lain dengan menggunakan : this() atau : base(). Untuk informasi selengkapnya, lihat Menggunakan konstruktor.
Untuk memperbaiki kesalahan ini, coba saran berikut:
- Putuskan rantai panggilan konstruktor melingkar, karena konstruktor tidak dapat memanggil dirinya sendiri baik secara langsung maupun tidak langsung melalui konstruktor lain (CS0516, CS0768). Pastikan bahwa rantai konstruktor akhirnya berakhir pada konstruktor yang tidak memanggil konstruktor lain dalam kelas yang sama.
-
: base()Hapus penginisialisasi dari konstruktor dalam jenis struct atau dari konstruktor di System.Object, karena jenis ini tidak memiliki konstruktor kelas dasar untuk dipanggil (CS0517, CS0522). Jenis struktur secara implisit mewarisi dari System.ValueType, tetapi Anda tidak dapat secara eksplisit memanggil konstruktornya. - Selesaikan penginisialisasi konstruktor atau hapus titik dua (
:) dari deklarasi konstruktor, karena ketika titik dua mengikuti tanda tangan konstruktor, pengkompilasi mengharapkan atauthis()base()(CS1018). Tambahkan panggilan konstruktor yang sesuai atau hapus titik dua sepenuhnya jika tidak ada rantai yang dimaksudkan.
Merekam dan menyalin konstruktor
- CS8867: Tidak ada konstruktor salinan yang dapat diakses yang tersedia di jenis dasar.
- CS8868: Konstruktor salinan dalam rekaman harus memanggil konstruktor salinan basis, atau konstruktor objek tanpa parameter jika rekaman mewarisi dari objek.
- CS8878: Konstruktor salinan harus publik atau dilindungi karena catatan tidak disegel.
- CS8910: Konstruktor utama bertentangan dengan konstruktor salinan yang disintesis.
Dalam tipe rekaman turunan, konstruktor salinan eksplisit Anda harus memanggil konstruktor salinan tipe dasar dengan menggunakan penginisialisasi : this(). Jika catatan langsung mewarisi dari System.Object, catatan tersebut dapat memanggil konstruktor objek tanpa parameter sebagai gantinya (CS8868).
Record menyertakan konstruktor salinan yang disintesis oleh kompilator. Anda dapat menulis konstruktor salinan eksplisit, tetapi harus memenuhi persyaratan tertentu. Kompiler menghasilkan kesalahan ketika konstruktor salinan rekaman melanggar persyaratan ini:
- Jenis dasar harus memiliki konstruktor salinan yang dapat diakses. Semua
recordjenis memiliki konstruktor penyalinan. Pastikan jenis dasar adalahrecord, atau tambahkan konstruktor salinan yang dapat diakses ke dalamnya (CS8867). - Dalam jenis catatan turunan, konstruktor salinan eksplisit Anda harus memanggil konstruktor salinan jenis dasar dengan menggunakan
: base()penginisialisasi. Jika rekor langsung mewarisi dari System.Object, rekor tersebut dapat memanggil konstruktor objek tanpa parameter (CS8868) sebagai gantinya. - Konstruktor salinan harus
publicatauprotectedkecuali jenis catatannya adalahsealed. Tambahkan pengubah akses yang sesuai ke konstruktor salinan (CS8878). - Jika konstruktor salinan eksplisit Anda memiliki tanda tangan yang sama dengan konstruktor salinan yang disintesis, definisi bertentangan. Hapus konstruktor salinan eksplisit Anda atau ubah signature-nya (CS8910).
Deklarasi konstruktor utama
Konstruktor utama mendeklarasikan parameter langsung dalam deklarasi jenis. Pengkompilasi mensintesis bidang untuk menyimpan parameter konstruktor utama saat Anda menggunakannya di anggota atau penginisialisasi bidang.
Rantai penggunaan konstruktor
- CS8861: Daftar argumen tak terduga.
- CS8862: Konstruktor yang dideklarasikan dalam jenis dengan daftar parameter harus memiliki inisialisasi konstruktor 'ini'.
- CS9122 : Daftar parameter tak terduga.
Ketika tipe memiliki konstruktor utama, semua konstruktor lain yang dinyatakan secara eksplisit harus menghubungkannya dengan menggunakan : this(...). Tambahkan penginisialisasi : this(...) yang meneruskan argumen yang sesuai ke konstruktor utama (CS8862).
Hapus daftar parameter dari referensi jenis dasar saat jenis dasar tidak memiliki konstruktor utama. Sintaksis class Derived : Base(args) hanya valid ketika Base memiliki konstruktor utama (CS8861). Demikian pula, hapus daftar parameter konstruktor utama dari interface deklarasi, karena antarmuka tidak dapat memiliki konstruktor utama (CS9122).
Penggunaan parameter dalam panggilan konstruktor dasar
- CS9105: Tidak dapat menggunakan parameter konstruktor utama dalam konteks ini.
- CS9106: Pengidentifikasi ambigu antara jenis dan parameter dalam konteks ini.
Anda hanya dapat menggunakan parameter konstruktor utama dalam panggilan konstruktor dasar jika Anda meneruskannya sebagai bagian dari deklarasi konstruktor utama. Untuk memperbaiki CS9105, pindahkan penggunaan parameter ke klausa dasar deklarasi jenis alih-alih menggunakannya dalam panggilan konstruktor : base() yang dinyatakan secara eksplisit.
Jika jenis dan parameter konstruktor utama memiliki nama yang sama, referensi menjadi ambigu. Untuk memperbaiki CS9106, ganti nama jenis atau parameter .
Parameter tipe yang mirip dengan ref
- CS9108: Tidak dapat menggunakan parameter yang memiliki jenis seperti ref di dalam metode anonim, ekspresi lambda, ekspresi kueri, atau fungsi lokal.
-
CS9109 : Tidak dapat menggunakan parameter konstruktor utama
ref,out, atauindi dalam anggota instans. - CS9110: Tidak dapat menggunakan parameter konstruktor utama yang memiliki tipe mirip ref dalam anggota instans.
- CS9136: Tidak dapat menggunakan parameter konstruktor utama jenis di dalam anggota instans.
Untuk mengatasi kesalahan ini:
- Parameter konstruktor utama jenis
ref structmemiliki batasan di mana Anda dapat menggunakannya. Pindahkan akses parameter dari ekspresi lambda, ekspresi kueri, atau fungsi lokal (CS9108). Dalam jenis yang bukanref struct, akses parameterref structhanya di inisialisasi bidang atau badan konstruktor, bukan dalam anggota instans (CS9110, CS9136). - Untuk tipe
ref struct, Anda tidak dapat menggunakan parameter primary constructor dengan pengubahin,ref, atauoutdalam metode instance atau aksesor properti. Salin nilai parameter ke bidang di konstruktor dan gunakan bidang tersebut dalam anggota instans sebagai gantinya (CS9109).
Pembatasan jenis struct
- CS9111: Metode anonim, ekspresi lambda, ekspresi kueri, dan fungsi lokal di dalam anggota instans struct tidak dapat mengakses parameter konstruktor utama.
- CS9112 : Metode anonim, ekspresi lambda, ekspresi kueri, dan fungsi lokal di dalam struktur tidak dapat mengakses parameter konstruktor utama yang juga digunakan di dalam anggota instans.
- CS9120: Tidak dapat mengembalikan parameter konstruktor utama berdasarkan referensi.
- CS9121: parameter konstruktor utama dari tipe Struct menyebabkan siklus dalam tata letak struktur.
Untuk mengatasi kesalahan ini:
- Dalam jenis struct, Anda tidak dapat mengambil parameter konstruktor utama dalam ekspresi lambda, ekspresi kueri, atau fungsi lokal di dalam anggota instans. Salin parameter ke variabel atau bidang lokal sebelum menggunakannya dalam konteks ini (CS9111, CS9112).
- Anda tidak dapat mengembalikan parameter konstruktor utama berdasarkan referensi dalam jenis struct. Simpan nilai dalam bidang dan kembalikan bidang tersebut berdasarkan referensi jika diperlukan (CS9120).
- Pastikan bahwa jenis parameter konstruktor utama tidak membuat siklus dalam tata letak struktur. Struktur tidak dapat berisi bidang dengan jenisnya sendiri baik secara langsung maupun tidak langsung (CS9121).
Pembatasan struktur hanya-baca
- CS9114: Parameter dari konstruktor utama pada jenis hanya-baca tidak dapat diberi nilai (kecuali dalam pengaturan khusus penginisiasi atau penginisialisasi variabel).
- CS9115: Parameter konstruktor utama dari tipe read-only tidak dapat dikembalikan oleh referensi yang dapat ditulis.
-
CS9116: Parameter konstruktor utama dari tipe hanya-baca tidak dapat digunakan sebagai nilai
refatauout(kecuali dalam setter hanya-init dari tipe atau penginisialisasi variabel). - CS9117: Anggota parameter konstruktor utama dari tipe yang hanya-baca tidak dapat dimodifikasi (kecuali dalam pengatur properti khusus inisialisasi tipe tersebut atau pada penginisialisasi variabel).
- CS9118: Anggota parameter konstruktor utama dari jenis readonly tidak dapat dikembalikan oleh referensi yang dapat ditulis.
-
CS9119: Anggota parameter konstruktor utama dari tipe hanya-baca tidak dapat digunakan sebagai nilai
refatauout(kecuali dalam pengaturan hanya-init dari tipe tersebut atau penginisialisasi variabel).
Untuk mengatasi kesalahan ini:
- Dalam
readonly structjenis, Anda tidak dapat memodifikasi parameter konstruktor utama dan anggotanya di luar setter khusus init atau penginisialisasi variabel. Pindahkan tugas ke penginisialisasi bidang atau setter properti khusus init (CS9114, CS9117). - Anda tidak dapat mengembalikan parameter konstruktor utama dan anggotanya dengan referensi bisa-tulis dalam
readonly structjenis. Kembalikan menurutreadonly refatau menurut nilai sebagai gantinya (CS9115, CS9118). - Anda tidak dapat mengirim parameter konstruktor utama dan anggotanya sebagai
refatauoutargumen dalamreadonly structtipe. Teruskan berdasarkan nilai atau sebagai argumen (in) gantinya (CS9116, CS9119).
Peringatan untuk parameter yang diambil dan dibayangi
- CS9107: Parameter ditangkap ke dalam status tipe pembungkus dan nilainya juga diteruskan ke konstruktor dasar. Nilai tersebut mungkin juga ditangkap oleh kelas dasar.
- CS9113: Parameter belum dibaca.
- CS9124: Parameter diambil ke dalam status jenis penutup dan nilainya juga digunakan untuk menginisialisasi bidang, properti, atau peristiwa.
- CS9179: Parameter konstruktor utama ditutup oleh anggota dari kelas dasar.
Peringatan berikut menunjukkan potensi masalah dengan cara Anda menyimpan atau mengakses parameter konstruktor utama:
- Anda mungkin menyimpan parameter dua kali jika Anda baik meneruskannya ke konstruktor dasar maupun mengaksesnya dalam tipe turunan. Anda mungkin memiliki satu salinan di kelas dasar dan satu lagi di kelas turunan. Pertimbangkan apakah Anda memerlukan kedua salinan, atau merestrukturisasi kode Anda untuk menghindari duplikasi (CS9107).
- Anda tidak memerlukan parameter konstruktor utama jika Anda tidak pernah membacanya. Hapus parameter yang tidak digunakan dari deklarasi konstruktor utama (CS9113).
- Anda mungkin menyimpan parameter dua kali jika Anda menangkapnya dalam jenis penutup dan menggunakannya untuk menginisialisasi bidang, properti, atau peristiwa. Pertimbangkan untuk menggunakan parameter yang diambil secara langsung alih-alih menginisialisasi anggota terpisah (CS9124).
- Anggota jenis dasar membayangi parameter konstruktor utama saat keduanya memiliki nama yang sama. Ganti nama parameter untuk menghindari kebingungan (CS9179).