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.
Operasi shift dalam matematika generik sekarang memiliki perilaku yang konsisten di semua jenis bilangan bulat bawaan.
Perilaku sebelumnya
Sebelumnya, perilaku saat menggunakan matematika generik untuk melakukan pergeseran pada T bisa berbeda berdasarkan jenisnya. Dalam beberapa kasus, sistem berhasil mengaburkan jumlah pergeseran dengan sizeof(T) - 1. Dan dalam kasus lain, tidak ada penyamaran. Ini berarti bahwa "overshifting" (seperti menggeser byte sebanyak 8) dapat menghasilkan jawaban yang berbeda dari yang diharapkan.
Perilaku baru
Implementasi diperbarui untuk menyembunyikan jumlah pergeseran yang sesuai, guna memastikan perilaku yang konsisten di semua tipe bilangan bulat bawaan dan dengan perilaku yang dipaparkan oleh antarmuka System.Numerics.IShiftOperators<TSelf,TOther,TResult>.
Versi yang diperkenalkan
.NET 10
Jenis perubahan yang merusak
Perubahan ini adalah perubahan perilaku .
Alasan perubahan
Perilaku berbeda dari perilaku yang dirancang karena perbedaan cara kerja masking untuk jenis bilangan bulat kecil di C#.
Tindakan yang direkomendasikan
Perbarui kode apa pun yang bergantung pada perilaku tidak konsisten sebelumnya untuk memastikan kode berfungsi dengan perilaku konsisten baru.
API yang terpengaruh
operator <<operator >>-
operator >>>untukbyte,char,sbyte,short, danushortsaat digunakan melalui matematika generik, yang memerlukanTyang dibatasi untukwhere T : IShiftOperators<T, int, T>atau antarmuka serupa.