freeCodeCamp/guide/arabic/miscellaneous/the-c-programming-language/index.md

12 KiB

title localeTitle
The C Programming Language لغة البرمجة C

مبادئ

  • اقامة
  • برنامجك الأول C #
  • أنواع ومتغيرات
  • بيانات التحكم في التدفق
  • العاملين
  • سلاسل
  • الفصول ، الكائنات ، الواجهة والطرق الرئيسية
  • الحقول والخصائص
  • نطاق ومعدلات إمكانية الوصول
  • التعامل مع الاستثناءات

متوسط

  • الأدوية
  • الأحداث ، المندوبين وتعديلات لامدا
  • إطار مجموعة
  • LINQ

المتقدمة

  • برمجة غير متزامنة (Async and Await)
  • مكتبة المهام المتوازية

ما هو الجديد في C # 6

  • Null-Conditional Operator
  • Auto-Initializers
  • تعبير Nameof
  • تعبير وظائف بودي وخصائص
  • ميزات أخرى

المبادئ الشيئية (OOP)

  • التغليف
  • التجريد
  • ميراث
  • تعدد الأشكال

المبادئ الصلبة

  • مبدأ المسؤولية الواحدة
  • مفتوح المبدأ مغلق
  • مبدأ استبدال Liskov
  • مبدأ الفصل بين الواجهة
  • مبدأ الانقلاب التبعية

C # Best practices، Pattern Designs & Test Driven Development (TDD)

اقامة

LinqPad عبارة عن لوحة شاشة NET لاختبار سريعا مقتطفات C # code.The الإصدار القياسي مجاني وأداة مثالية للمبتدئين لتنفيذ العبارات والتعبيرات والبرامج اللغوية.

بدلاً من ذلك ، يمكنك أيضًا تنزيل Visual Studio Community 2015 وهو IDE قابل للتوسعة يستخدمه معظم المتخصصين لإنشاء تطبيقات المؤسسة.

برنامجك الأول C

`//this is the single line comment

/** This is multiline comment, compiler ignores any code inside comment blocks. **/

//This is the namespace, part of the standard .NET Framework Class Library using System; // namespace defines the scope of related objects into packages namespace Learning.CSharp { // name of the class, should be same as of .cs file public class Program { //entry point method for console applications public static void Main() { //print lines on console Console.WriteLine("Hello, World!"); //Reads the next line of characters from the standard input stream.Most common use is to pause program execution before clearing the console. Console.ReadLine(); } } } `

يجب أن يكون لكل تطبيق من تطبيقات C # وحدة التحكم طريقة رئيسية تمثل نقطة دخول البرنامج.

تحرير HelloWorld في .NET Fiddle ، أداة مستوحاة من JSFiddle حيث يمكنك تغيير مقتطفات الشفرة والتحقق من الإخراج لنفسك. لاحظ أن هذا مجرد مشاركة واختبار مقتطفات الشفرة ، وليس لاستخدامها في تطوير التطبيقات.

إذا كنت تستخدم visual studio ، اتبع هذا البرنامج التعليمي لإنشاء تطبيق وحدة التحكم وفهم أول برنامج C #.

أنواع ومتغيرات

C # هي لغة مكتوبة بقوة. كل متغير لديه نوع. كل تعبير أو بيان يتم تقييمه إلى قيمة. هناك نوعان من الأنواع في C #

  • أنواع القيم
  • أنواع المرجع.

أنواع القيم : المتغيرات التي تحتوي على أنواع قيم تحتوي على قيم مباشرة. إن تعيين متغير نوع قيمة واحد إلى آخر ينسخ القيمة المحتواة.

تحرير في .NET Fiddle

int a = 10; int b = 20; a=b; Console.WriteLine(a); //prints 20 Console.WriteLine(b); //prints 20

لاحظ أنه في اللغات الديناميكية الأخرى قد يكون هذا مختلفًا ، ولكن في C # يكون هذا دائمًا نسخة قيمة. عند إنشاء نوع القيمة ، يتم إنشاء مساحة واحدة على الأرجح في بنية تخزين العناصر ، وهي بنية بيانات "LIFO" (آخر في أول خطوة). المكدس لديه حدود الحجم وعمليات الذاكرة فعالة. أمثلة قليلة من أنواع البيانات المضمنة هي int, float, double, decimal, char and string .

النوع | مثال | وصف
--------- | -------------------------------------------------- --------------------------- | -------------------------------------------------- -------------------------------------------------- -----------------------------
عدد صحيح int fooInt = 7; | وقعت 32 بت عدد صحيح
طويل | long fooLong = 3000L; | وقعت عدد صحيح 64 بت . يتم استخدام L لتحديد أن قيمة المتغير هذه من النوع long / ulong
مزدوج | double fooDouble = 20.99; | الدقة: 15-16 رقمًا
تعويم | float fooFloat = 314.5f; | الدقة: 7 أرقام . يتم استخدام F لتحديد أن قيمة المتغير هذه من نوع float
عشري | decimal fooDecimal = 23.3m; | الدقة: من 28 إلى 29 رقمًا . المزيد من الدقة والنطاق الأصغر يجعلها مناسبة للحسابات المالية والنقدية
تشار | char fooChar = 'Z'; | حرف Unicode 16 بت واحد
منطقية | bool fooBoolean = false; | منطقية - صحيحة و خاطئة
سلسلة string fooString = "\"escape\" quotes and add \n (new lines) and \t (tabs); | سلسلة من أحرف Unicode.

للحصول على قائمة كاملة بجميع أنواع البيانات المضمنة ، انظر هنا

أنواع المراجع : تخزن متغيرات أنواع المراجع إشارات إلى الكائنات الخاصة بها ، مما يعني أنها تخزن العنوان إلى موقع البيانات الموجودة على المكدس ، وتُعرف أيضًا بالمؤشرات. يتم تخزين البيانات الفعلية على ذاكرة الكومة . لا يؤدي تعيين نوع المرجع إلى نوع آخر إلى نسخ البيانات ، وإنما ينشئ النسخة الثانية من المرجع الذي يشير إلى نفس الموقع على كومة الذاكرة المؤقتة.

في كومة الذاكرة المؤقتة ، يتم تخصيص الكائنات ثم deallocated بترتيب عشوائي ولهذا السبب يتطلب مقدار الحمل من إدارة الذاكرة [وجمع البيانات المهملة](https://msdn.microsoft.com/en-us/library/hh156531(v=vs.110) .aspx).

إذا لم تكن تكتب تعليمات برمجية غير آمنة أو تتعامل مع [التعليمات البرمجية غير المُدارة](https://msdn.microsoft.com/en-us/library/sd10k43k(v=vs.100) .aspx) ، فلا داعي للقلق بشأن عمر مواقع الذاكرة الخاصة بك. سيعتني مترجمو .NET و CLR بهذا ، ولكن لا يزال من الجيد الاحتفاظ بهذا العقل لتحسين أداء تطبيقاتك.

مزيد من المعلومات هنا

بيانات التحكم في التدفق

  • if else statement: Edit in .NET Fiddle

    int myScore = 700; if (myScore == 700) { Console.WriteLine("I get printed on the console"); } else if (myScore > 10) { Console.WriteLine("I don't"); } else { Console.WriteLine("I also don't"); }

    /** Ternary operators A simple if/else can also be written as follows <condition> ? <true> : <false> **/ int myNumber = 10; string isTrue = myNumber == 10 ? "Yes" : "No";

  • بيان التبديل : تحرير في .NET Fiddle

    باستخدام النظام

    برنامج الطبقة العامة { الفراغ الثابت العام Main () { int myNumber = 0؛ التبديل (myNumber) { // يمكن أن يحتوي قسم التبديل على أكثر من علامة حالة واحدة. الحالة 0: حالة 1: { Console.WriteLine ("Case 0 or 1")؛ استراحة؛ }

    // Most switch sections contain a jump statement, such as a break, goto, or return.; case 2: Console.WriteLine("Case 2"); break; // 7 - 4 in the following line evaluates to 3. case 7 - 4: Console.WriteLine("Case 3"); break; // If the value of myNumber is not 0, 1, 2, or 3 the //default case is executed.* default: Console.WriteLine("Default case. This is also optional"); break; // could also throw new Exception() instead } }

    }

  • For & Foreach : Edit in .NET Fiddle

    لـ (int i = 0؛ i <10؛ i ++) { Console.WriteLine (ط)؛ // print 0-9 }

    Console.WriteLine (Environment.NewLine)؛ لـ (int i = 0؛ i <= 10؛ i ++) { Console.WriteLine (ط)؛ // print 0-10 }

    Console.WriteLine (Environment.NewLine)؛ لـ (int i = 10 - 1؛ i> = 0؛ i--) // decrement loop { Console.WriteLine (ط)؛ // يطبع 9-0 }

    Console.WriteLine (Environment.NewLine)؛ //إلى عن على (؛ ؛ ) { // جميع التعبيرات اختيارية. هذا البيان // ينشئ حلقة لا نهائية. * //
    }

  • أثناء القيام بالمهام أثناء : تحرير في .NET Fiddle

    // استمر في فترة التكرار حتى يساوي الفهرس 10. int i = 0؛ بينما (أنا <10) { Console.Write ("While statement")؛ Console.WriteLine (i)؛ // اكتب الفهرس على الشاشة. i ++؛ // زيادة المتغير. }

    عدد int = 0؛ // نفذ العمل أولاً ، حتى يتم استيفاء الشرط ، أي ينتهي عند وجود رقم يساوي 4. فعل { Console.WriteLine (العدد) ؛ // يطبع القيمة من 0-4 عدد ++؛ // أضف واحدة للرقم. } بينما (العدد <= 4) ؛