تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
Anonymous Type #1
#1
بسم الله الرحمن الرحيم


النوع المجهول (Anonymous type): توفر لغة سي شارب C#.NET كتابة متغيرات دون التصريح بنوع المتغير ،بحيث في هذه الحالة سيتم تحديد نوع المتغير عن طريق القيمة المسندة اليه وقت الترجمة compile time.


وهذا النوع من المتغيرات يتم كتابتها باستخدام الكلمة المفتاحية var بالشكل التالي:

PHP كود :
var number 10

في هذه الحالة ستكون مجبرا باعطاء قيمة للمتغير number في نفس سطر التعريف ،بحيث لا يسمح بتعريف المتغير ومن ثم اعطاءه قيمة معينة في سطر اخر كما في المثال التالي:


PHP كود :
var number// error: variable must be initialized
number 10


هذا النوع مفيد جدا عند استخدامك لتقنية LINQ بحيث في بعض الاحيان ستقوم بجلب قيم معينة من المصدر باستخدام تقنية LINQ وستكون مجبرا باستخدام النوع المجهول كما في المثال التالي:

المثال ادناه عبارة عن مقارنة بين استخدام تقينة LINQ و for-loop لايجاد عدد الاعداد الفردية والزوجية.


الذي ستلاحظه في المثال انه هنالك متغيرين باسم (evens, odds) ،وستلاحظ كتابتها دون التصريح عن نوعهما وعند التأشير الى المتغير result  ستلاحظ عبارة: Anonymous Types: new {int evens, int odds}.

المثال:

PHP كود :
var numbers = new int[] { 15899935773346688 };

 
           // evens and odds using for-loop
 
           //int evens = 0, odds = 0;
 
           //foreach (var number in numbers)
 
           //{
 
           //    if (number % 2 == 0)
 
           //    {
 
           //        evens++;
 
           //    }
 
           //    else
 
           //    {
 
           //        odds++;
 
           //    }
 
           //}
 
           //Console.WriteLine($"Evens: {evens} \nOdds: {odds}");

 
           // evens and odds in LINQ 
 
           var result numbers.Select(item =>
 
           new
            
{
 
               evens numbers.Count(number => number == 0),
 
               odds numbers.Count(number => number != 0)
 
           }).FirstOrDefault();

 
           Console.WriteLine($"Evens: {result.evens} \nOdds: {result.odds}");

 
           Console.ReadLine(); 


تحياتي لكم
سجاد محمد
الرد }}}
تم الشكر بواسطة: Amir_Alzubidy , sendbad100 , elgokr
#2
كل الحب و الامتنان 
الله يعطيك العافية
الرد }}}
تم الشكر بواسطة: Sajad , elgokr


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  Anonymous Type #2 Sajad 0 1,795 03-03-19, 09:49 PM
آخر رد: Sajad
  C# Dynamic Type Abu Ehab 1 1,988 30-09-17, 12:14 AM
آخر رد: sendbad100
  Tuple Return Type in C#7.0 Sajad 5 2,705 23-07-17, 03:53 PM
آخر رد: Amir_Alzubidy
  Type Casting In C#.NET Sajad 4 3,604 24-06-16, 02:23 AM
آخر رد: Sajad

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم