03-03-19, 09:49 PM
بسم الله الرحمن الرحيم
النوع المجهول (Anonymous Type): هل تخيّلت يوماً ان باستطاعتك انشاء كلاس مع خصائصها بدون انشاء كلاس فعلي؟ اقصد بدون استخدام class keyword؟ ?
نعم يمكنك ذلك من خلال النوع المجهول وذلك باستخدام new keyword بدون ذكر النوع أما الحاضنة ستكون var keyword.
بحيث انوع الخصائص سيتم تحديدها من قبل المترجم بالاعتماد على نوع البيانات المسندة اليها.
وهذه الخصائص ستكون read-only property بمعنى لا يمكن تغييرها بعد التعريف.
كما في المثال التالي:
PHP كود :
var book = new
{
BookId = 1,
BookTitle = "C#",
Pages = 200
};
//book.BookTitle = "VB.NET"; // eror
Console.WriteLine($"Book ID: {book.BookId} \nBook Title: {book.BookTitle} \nBook Pages: {book.Pages}");
طيب ماذا لو اردت انشاء List of AnonymousType ؟
في هذه الحالة يجب عليك على الاقل انشاء نوع مجهول واحد عند التعريف ومن ثم بامكانك اضافة عناصر اخرى الى القائمة و الاخذ بالنظر ان اسماء الخصائص عند الاضافة يجب ان تكون نفسها عند الاضافة بمعنى لو كتبت التالي:
PHP كود :
// list of anonymous types
var list = new[]
{
new { FirstName="Ahmed", LastName="Mohammed" }
}.ToList();
* لاحظ الـ property names
وتريد اضافة عنصر الى القائمة بهذا الشكل:
PHP كود :
list.Add(new { FName = "Sajjad", LastName = "Mohammed" });
المثال الكامل عن list of anonymous type:
PHP كود :
// list of anonymous types
var list = new[]
{
new { FirstName="Ahmed", LastName="Mohammed" }
}.ToList();
list.Add(new { FirstName = "Sajjad", LastName = "Mohammed" });
//list.Add(new { FName = "Sajjad", LastName = "Mohammed" }); // error
Console.WriteLine($"{list[0].FirstName}");
تحياتي لكم
سجاد محمد