Rumah >pembangunan bahagian belakang >C++ >Mengapa Kaedah Tanpa Nama Tidak Boleh Ditugaskan Terus ke `var` dalam C#?
Mengapa Kaedah Tanpa Nama Tidak Boleh Ditugaskan kepada var
Dalam kod yang disediakan, penetapan kaedah tanpa nama kepada pembolehubah var gagal untuk disusun disebabkan oleh kekaburan dalam membuat kesimpulan jenis perwakilan.
Kaedah tanpa nama boleh diberikan untuk mewakilkan jenis, seperti Func
Selain itu, walaupun pengkompil boleh membuat kesimpulan jenis perwakilan, ini boleh menyebabkan ketidakkonsistenan. Sebagai contoh, dengan mengandaikan tugasan var berjaya disusun, kod berikut tidak akan masuk akal lagi:
var comparer = delegate(string arg1, string arg2, string arg3, string arg4, string arg5) { return false; };
Ini kerana Func<> hanya membenarkan sehingga empat argumen dalam .NET 3.5, jadi inferens jenis tidak sepadan dengan gelagat sebenar.
Untuk menyelesaikan kekaburan ini, adalah perlu untuk menyatakan secara eksplisit jenis perwakilan apabila menetapkan kaedah tanpa nama kepada pembolehubah. Ini memastikan kejelasan dan ketekalan dalam kod.
Atas ialah kandungan terperinci Mengapa Kaedah Tanpa Nama Tidak Boleh Ditugaskan Terus ke `var` dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!