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:
- CS0765 - Metode parsial yang hanya memiliki deklarasi pendefinisian atau metode bersyarat yang telah dihapus tidak dapat digunakan dalam pohon ekspresi.
- CS0831 - Pohon ekspresi mungkin tidak berisi akses dasar.
- CS0832 - Pohon ekspresi mungkin tidak berisi operator penugasan
- CS0834 - Ekspresi lambda dengan badan pernyataan tidak dapat dikonversi ke pohon ekspresi.
- CS0835 - Tidak dapat mengonversi lambda ke pohon ekspresi yang argumen jenisnya 'type' bukan tipe delegasi.
- CS0838 - Sebuah pohon ekspresi tidak boleh berisi penginisialisasi array multidimensi.
- CS0845 - Lambda pohon ekspresi mungkin tidak berisi operator coalescing dengan sisi kiri harfiah null atau default.
- CS0853 - Pohon ekspresi mungkin tidak berisi spesifikasi argumen bernama.
- CS0854 - Pohon ekspresi tidak boleh berisi pemanggilan yang menggunakan argumen opsional.
- CS0855 - Pohon ekspresi mungkin tidak berisi properti terindeks.
- CS1944 - Pohon ekspresi mungkin tidak berisi operasi penunjuk yang tidak aman.
- CS1945 - Pohon ekspresi mungkin tidak berisi ekspresi metode anonim.
- CS1946 - Ekspresi metode anonim tidak dapat dikonversi ke pohon ekspresi.
-
CS1951 - Lambda pohon ekspresi mungkin tidak berisi
refparameter ,inatauout. - CS1952 - Lambda pohon ekspresi mungkin tidak berisi metode dengan argumen variabel.
- CS1963 - Pohon ekspresi mungkin tidak berisi operasi dinamis.
- CS1989 - Ekspresi lambda asinkron tidak dapat dikonversi ke pohon ekspresi (expression tree).
- CS2037 - Pohon ekspresi lambda mungkin tidak berisi panggilan COM dengan argumen yang ref dihilangkan.
- CS7053 - Pohon ekspresi mungkin tidak berisi "fitur".
- CS8072 - Lambda pada pohon ekspresi tidak boleh mengandung operator propagasi null.
- CS8074 - Lambda pohon ekspresi mungkin tidak berisi inisialisasi kamus.
-
CS8075 - Metode ekstensi
Addtidak didukung untuk penginisialisasi koleksi dalam ekspresi lambda. - CS8110 - Pohon ekspresi mungkin tidak berisi referensi ke fungsi lokal.
-
CS8122 - Pohon ekspresi mungkin tidak berisi operator pencocokan pola '
is'. - CS8143 - Pohon ekspresi tidak boleh berisi tuple literal.
- CS8144 - Pohon ekspresi mungkin tidak berisi konversi tuple.
- CS8153 - Pohon ekspresi lambda tidak boleh berisi panggilan ke metode, properti, atau pengindeks yang mengembalikan berdasarkan referensi.
- CS8155 - Ekspresi lambda yang mengembalikan nilai berdasarkan referensi tidak dapat dikonversi ke pohon ekspresi.
- CS8188 - Pohon ekspresi mungkin tidak berisi ekspresi throw.
- CS8198 - Pohon ekspresi mungkin tidak berisi deklarasi variabel argumen keluar.
- CS8207 - Pohon ekspresi mungkin tidak berisi buang.
-
CS8382 - Pohon ekspresi mungkin tidak berisi tuple
==atau!=operator. - CS8514 - Pohon ekspresi mungkin tidak berisi ekspresi pengalihan.
- Pohon Ekspresi CS8640 - tidak boleh berisi nilai struktur ref atau jenis terbatas.
- CS8642 - Pohon ekspresi mungkin tidak berisi penetapan coalescing null.
- CS8790 - Pohon ekspresi mungkin tidak berisi pola System.Index atau System.Range akses pengindeks.
-
CS8791 - Pohon ekspresi mungkin tidak berisi ekspresi indeks dari ujung ('
^'). -
CS8792 - Pohon ekspresi mungkin tidak berisi ekspresi rentang ('
..'). -
CS8810 - '
&' pada grup metode tidak dapat digunakan dalam pohon ekspresi. -
CS8849 - Pohon ekspresi mungkin tidak berisi
with-expression. - CS8927 - Pohon ekspresi mungkin tidak berisi akses anggota antarmuka virtual atau abstrak statis.
- CS8952 - Pohon ekspresi mungkin tidak berisi konversi handler string terinterpolasi.
- CS8972 - Sebuah ekspresi lambda dengan atribut tidak dapat dikonversi menjadi pohon ekspresi.
- CS9170 - Pohon ekspresi mungkin tidak berisi akses atau konversi array sebaris.
- CS9175 - Pohon ekspresi mungkin tidak berisi ekspresi koleksi.
- CS9226 - Pohon ekspresi mungkin tidak berisi bentuk parameter pengumpulan param non-array yang diperluas.
- CS9296 - Pohon ekspresi mungkin tidak berisi properti ekstensi atau akses pengindeks.
- CS9307 - Pohon ekspresi tidak boleh berisi spesifikasi argumen bernama yang tidak pada tempatnya.
- CS9369 - Pohon ekspresi mungkin tidak berisi konversi union.
Pembatasan pohon ekspresi
Semua kesalahan dalam daftar sebelumnya menunjukkan bahwa Anda menggunakan jenis ekspresi C# yang tidak diizinkan di pohon ekspresi. Dalam kebanyakan kasus, ekspresi yang dilarang mewakili sintaksis yang diperkenalkan setelah C# 3.0. Ekspresi ini dilarang karena jika diizinkan akan membuat perubahan pengganggu di semua pustaka yang mengurai pohon ekspresi. Semua library perlu ditingkatkan agar dapat mengurai ekspresi C# yang baru jika konstruksi yang lebih baru diizinkan.
Ekspresi berikut dilarang:
- Pemanggilan metode parsial yang tidak memiliki deklarasi penerapan.
- Pemanggilan metode bersyarat yang telah dihapus.
- Pemanggilan fungsi lokal.
-
asyncekspresi lambda. - Menggunakan
baseuntuk langsung memanggil metode virtual yang dideklarasikan dalam kelas dasar. - operasi pengisian
- statement lambdas.
- penginisialisasi multi-dimensi array. Sebagai gantinya, buat dan inisialisasi array multi-dimensi di luar pohon ekspresi.
-
dynamicoperasi. - ekspresi pencocokan pola.
- Tuple literal dan banyak operasi tuple, seperti perbandingan kesetaraan.
-
throwekspresi. -
buang (
_) deklarasi. - Operator indeks dan rentang .
- Mutasi nondestruktif menggunakan ekspresi
with. - Mendeklarasikan atau mengakses inline array.
- Termasuk ekspresi koleksi.
- Konversi serikat.
- Operator null propagating dan null coalescing.
-
ref structjenis, seperti System.Span<T> dan System.ReadOnlySpan<T>. -
in,out, danrefparameter, termasukoutdeklarasi variabel. -
refmengembalikan nilai. - Panggilan ke metode yang mengembalikan nilai melalui
ref. - Mengakses anggota antarmuka abstrak statis.
- Array sebaris.
- modifier
paramsuntuk apa pun selain array dimensi tunggal.
Pembatasan lainnya adalah:
- Tidak dapat mengakses properti ekstensi dan indekser sebagai ekstensi.
- Tidak dapat menerapkan atribut ke ekspresi lambda, parameternya, atau pengembaliannya.
- Ekspresi lambda harus dapat dikonversi menjadi jenis yang diturunkan dari System.Linq.Expressions.Expression, di mana parameter jenisnya adalah tipe delegasi.
- Parameter bernama dan opsional terbatas. Ekspresi tidak dapat memanggil metode yang menentukan argumen bernama, dan tidak dapat menggunakan nilai default parameter opsional.
- Tidak dapat menggunakan inisialisasi kamus atau metode ekstensi
Add. - Ekspresi target harus berupa ekspresi lambda. Konstanta dan variabel tidak diizinkan, tetapi ekspresi lambda yang mengembalikan konstanta atau variabel adalah.
- Operasi penunjuk tidak aman tidak diperbolehkan.
- Panggilan COM harus menyertakan
refpada argumen; tidak dapat dianggap implisit. - Kata kunci
__arglistyang tidak didukung.