تقييم الموضوع :
  • 1 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
[توضيح] معاملات لغة السي شارب
#3
توضيح بعض المعاملات :-


[COLOR="#800080"]
typeof : هذا يستعمل لجلب الفئة ك system.type
ونستفيد من هذا الامر في التعامل مع الفئة ومعرفة عنوانها ووو ، مثلا :

PHP كود :
class Temp
        
{
            public static 
void msg(string text) { MessageBox.Show(text); }
        }

        private 
void Form1_Load(object senderEventArgs e)
        {
            
Type t typeof(Temp);

            
object[] parameters = new object[] { "Hello" };
            
t.GetMethod("msg").Invoke(nullparameters);
        } 

تم استدعاء الاجراء msg ضمن فئة Temp




--



checked : يفحص القيم قبل إعطائها للمتغير
فلو كانت القيمة اكبر من حجم المتغير(overflow)
سيحصل إستثناء

في الوضع العادي (بدون checked) عندما يحصل فيضان(overflow) للمتغير
يتم عرض اقصى قيمة يتحملها المتغير وتحويلها للسالب
مثلا :

PHP كود :
int input 10;

           
int result 2147483647 input;

           
MessageBox.Show(result.ToString()); 

ستظهر لك رسالة بقيمة المتغير
ستكون قيمته 2,147,483,639-
لان اكبر قيمة يتحملها int بين موجب 2,147,483,639 وسالب 2,147,483,639-
قمنا باضافة 10 للمتغير فلم يتحمل ذلك وقام بعرض قيمة خاطئة لانريدها

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

الحل باستعمال checked

PHP كود :
int input 10;

           try
           {
               
int result checked(2147483647 input);
               
MessageBox.Show(result.ToString());
           }
           catch (
OverflowException ex)
           {
               
MessageBox.Show(ex.Message);
           } 

سيتم عرض استثناء بدل عرض 2,147,483,639-

يمكن استعال checked كا (بلوك) اذا كنا نريد التحقق من اكثر من متغير
مثلا :
PHP كود :
int input 10;
            
int input2 505;

            
checked
            
{
                try
                {
                    
int result 2147483647 input;
                    
MessageBox.Show(result.ToString());
                }
                catch(
OverflowException ex) { MessageBox.Show(ex.Message); }
                try
                {
                    
int result 2147483647 input2;
                    
MessageBox.Show(result.ToString());
                }
                catch (
OverflowException ex) { MessageBox.Show(ex.Message); }
            } 




--



sizeof : يستخدم لمعرفة حجم الانواع
مثلا لمعرفة حجم النوع int :

PHP كود :
MessageBox.Show(sizeof(int).ToString() + " Bytes"); 



--



المعامل * يستخدم لضرب الارقام وتعريف الpointers
مثلا :
PHP كود :
private void Form1_Load(object senderEventArgs e)
        {
            
unsafe
            
{
                
intans = (int*)44;
            }
        } 

--



await : قد شرحها الاستاذ الكبير sajad سابقا على هذا الرابط : هنا
وايضا تستعمل معاها async ولكن لم يذكرها موقع mdsn ك معامل حيث يبدون انها كلمة مفتاحية (keyword) وليست معامل



--



المعامل >> يستخدم لإدراج اصفار على يمين البايت

مثلا :
PHP كود :
int binNum Convert.ToInt32("00000001"2); //00000001 = 1 on decmal
            
binNum binNum << 4//سيتم ادراج 4اصفار على اليمين ليصبح
            //00010000

            
MessageBox.Show(binNum.ToString()); //00010000 = 16 on dec 

والمعامل << يستخدم لإدراج اصفار على يسار البايت



--



is : للتأكد من نوع الكائن
مثلا :

PHP كود :
OpenFileDialog op = new OpenFileDialog();

            if (
op is OpenFileDialog)
            {
                
MessageBox.Show("is openfile dialog");
            }
            else
            {
                
MessageBox.Show("is not openfile dialog");
            } 



--


المعامل :? يستخدم لإرجاع قيمة عند تحقق شرط معين
وإرجاع قيمة اخرى عند عدم تحقق الشرط (شبيهة ب if)

مثلا :-

PHP كود :
string str "ahmed";

            
string result = (str == "ahmed") ? "welcome ahmed xD" "Who are you ??"

سيتم إرجاع who are you اذا كان المتغير str لايساوي ahmed



--



المعامل ?? يستخدم لإرجاع قيمة عندما يكون الكائن فارغ null
ماذا لو كنت تريد ان تخبر المستخدم ان الكائن فارغ فنستعمل هذا المعامل
مثال :
PHP كود :
string op null;

            
MessageBox.Show(op ?? "op is Null!!!"); 

ستظهر رسالة للمستخدم تقول ان op فارغ


ولكن لو اسندنا قيمة
مثال :
PHP كود :
string op null;
            
op "Welcome Mohammed";

            
MessageBox.Show(op ?? "op is Null!!!"); 

لن تظهر op is null لأننا اسندنا قيمة للمتغير op فهو الان ليس null




--




المعامل ? يستخدم لتعريف متغيرات ذات قيمة لكي تدعم القيمة null
فهذا التعبير لايجوز
PHP كود :
int op null

ولكن هذا يجوز :
PHP كود :
intop null

باستعمال هذا المعامل حصلنا على خاصية HasValue التي نستطيع من خلالها معرفة إن كان المتغير null او لا
مثال :

PHP كود :
intop null;

            if (!
op.HasValue)
            {
                
MessageBox.Show("op is null");
            } 
[/COLOR]




--
--
--



[COLOR="#B22222"]إلى هنا أعزائي نصل معكم لآخر المقالة

اتمنى انكم استفدتم من هذه المعلومات المتواضعة

ونلقاكم في مقالات قادمة إن شاء الله[/COLOR]


إنتهى.
الرد }}}
تم الشكر بواسطة: نور الدين وليد , sendbad100


الردود في هذا الموضوع
[توضيح] معاملات لغة السي شارب - بواسطة الشاكي لله_mybb_import4784 - 20-08-13, 10:59 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  dynamic كلمة مفتاحية جديدة في السي شارب Sajad 4 3,751 20-02-17, 06:36 PM
آخر رد: sendbad100
  [C#.NET] مقدمة في سي شارب 7 الإصدار الجديد C# 7 Features Previewed balugili 0 3,344 05-10-16, 03:04 AM
آخر رد: balugili
  [ 6.#C] - الجديد في سي شارب 6 الشاكي لله 2 4,034 02-06-16, 11:17 AM
آخر رد: CLARO
  [C#.NET] تحميل فيجوال سي شارب Omar 6.0 0 4,821 18-02-16, 06:45 PM
آخر رد: Omar 6.0
  الأعداد الضخمة BigInteger في سي شارب (جديد دوت نت 4) RaggiTech 0 3,116 11-10-12, 05:01 PM
آخر رد: RaggiTech

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


يقوم بقرائة الموضوع: