المعامل ‘??’

23 01 2009

سؤال يطرح نفسه ما هو المعامل ?? في الـ C# حتى نستطيع الاحابة عليه عزيزي المبرمج أرجوا أن تقرأ هذا الموضوع إلى النهاية.
إن المعامل ?? يعيد القيمة الموجودة إلى يساره في حال كانت قيمتها لا تساوي null، وإلا فإنه يعيد القيمة التي إلى يمينه. (شو هاد!!!)
دعنا نوضح ذلك بمثال:

int? x = null;

int y = x ?? -1;

أقرأ باقي الموضوع »





تعرف إلى الصف Hashtable

15 10 2008

يوجد ضمن فضاء الأسماء System.Collections صفوف القواميس التي تدل من اسمها أنها مثل القاموس تقوم بتخزين قيمة تسمى “مفتاح” وقيمة تسمى “قيمة المفتاح”، وبالتالي تكون الافادة في عملية البحث عن القيمة المقابلة لمفتاح ما، من هذه الصفوف الصف Hashtable الذي يمكن استخدامه كما يلي:

Hashtable emailLookup = new Hashtable();
emailLookup.Add(“Abdulkarim2006@hotmail.com”, “Kanaan, Abdulkarim”);
emailLookup["Abdulkarim.Kanaan@gmail.com"] = “Kanaan, Abdulkarim”;

أقرأ باقي الموضوع »





التعمق في لغة C# (المقالة الأولى)

15 10 2008

لا بد أنك عزيزي المبرمج قد قمت بكتابة من الأوامر والتعليمات وأنشأت العديد من البرامج من نوع Console Application وخاصة في بداية تعلمك للغة C#، فهذا يعني أنك قد صادفت وبدون شك التابع Main،،
حديثي سيكون بداية عن التابع Main، دعني بداية أطرح عليك السؤال التالي:

ما هو التابع Main؟؟
الجواب وبكل بساطة هو أن هذا التابع يعتبر نقطة الانطلاق لأي برنامج، فأنت إنطلاقا من كونك مبرمج، وهذا شيء أكيد يجب أن تضع نصب عينيك أن أول تابع سوف يتم تنفيذه أو البدء بتنفيذه لن يكون سوى التابع Main، وبالتالي أنت ملزم ببناءه إن كنت لا تملك نسخة من Visual Studio، إذ أن بيئة Visual Studio ستقوم نيابة عنك ببنائه.

أقرأ باقي الموضوع »





تعرف على بعض ميزات Microsoft Framework 3.5 !!

7 03 2008

بعض ميزات Framework 3.5:إذا كنت من محبي التعرف على الجديد في عالم الدوت نيت فإن هذه المقالة تشكل مفتاح البداية للتعرف على بعض الجديد في هذه البيئة القوية لقد جاء Framework 3.5 حاملا بين طياته العديد من الميزات التي التي تزيد العمل في بيئة الدوت نيت سهولة أكبر، التي تدفع مبرمج الدوت نيت للتوجه إلى تعلم المزيد والمزيد فالبرمجة يمكن تشبيهها بالبحر الذي يمكن أن نقول عنه أنه له بداية وليس له نهاية، دعنا من خلال هذه المقالة نستعرض بعض الميزات الجديدة التي جائت بها بيئة .NET  أقرأ باقي الموضوع »





كيف يمكنك معرفة المهام التي تعمل على حاسبك؟

22 02 2008

لنفرض انك تود بانشاء تابع يقوم باعادة اسماء المهام قيد التنفيذ على حاسب ما، فماذا تظن انك فاعل من خلال الدوت نيت دع المثال التالي يوضح لك كيف يمكنك القيام بهذه المهمة السهلة بكل سهولة:

public static string[] GetTasks(string machineName)
{
    string[] tasks;
    Process[] p;

   
p = Process.GetProcesses(machineName);
    tasks = new string[p.Length];
 
    for (int i = 0; i < p.Length; i++)
    {
        tasks[i] = p[i].ProcessName;
    }
 
    return tasks;
}

فما رؤيك!!، دعنا نوضح قليلا ماذا فعلنا من خلال الدوت نيت، لقد استخدمنا التابع GetProcess التابع للصف Process، حيث مهمة هذا التايع ان يعيد لك مصفوفة من نوع Process بالمهام قيد التنفيذ على الحاسب المختار من خلال اسمه.أما من اجل الحصول على عدد المهام قيد التنفيذ استخدمت الخاصة p.Length والتي تحدد عد ابعاد الشعاع p والذي فعليا يمثل عدد المهام.وبقي امر اخير من اجل الحصول على اسمالهمة فيمكننا استخدام الخاصة ProcessName التي تعيد اسم المهمة المحددة من خلال المتحول i
وهناك العديد من الخصائص والتوابع التي يقدمها لك الصف
Process، فمثلا هناك التابع Kill() الذي يقوم بإنهاء تنفيذ المهمة وغيرها الكثير، سأدع لك عملية اكتشاف ذلك لكي تستمتع بنفسك.بقي امر واحد وهو كيفية استخدام هذا التابع، ويكون ذلك بأحد السطريين التاليين:

string[] t1 = GetTasks(تضع هنا اسم جهازك);
string[] t2 = GetTasks(“.”);

السطر الأول واضح جدا، السطر الثاني وضعنا “.” أي اننا نقصد الجهاز الذي يتم تنفيذ هذه المهام عليه.

————————————————





كيف يمكنك معرفة رقم السطر الذي رمى الإستثناء exception؟؟

22 02 2008

في تطبيق تقوم ببنائه كيف يمكنك معرفة رقم السطر الذي يتم فيه حدوث استثناء exception؟؟ مثلا:

try
{
    // كودك البرمجي
}
catch (Exception ex) {}

يمكنك ذلك بكل سهولة باستخدام الخاصة StackTrace التابعة للكائن ex المشتق من الصف Exception، فتصبح الشيفرة

 try
{
    // كودك البرمجي
}
catch (Exception ex)
{
    Console.WriteLine(ex.StackTrace);
}
 

طبعا للكائن ex العديد من الخصائص منها: Message و  Source و TargetSite وغيرها الكثير.
فمثلا
Message: تعطيك فحوى رسالة الخطأ، اي ما هو سبب وقوع الخطأ
TargetSite: اسم التابع الذي حدث فيه الاستثناء.