فهرس كتاب من الصفر إلى الاحتراف سي شارب 10
•
مقدمة .... 7
-1-
قصة
حياة سي شارب
•
من الحصاة إلى الحاسوب .... 13
•
مراحل تطور الحاسب .... 16
•
لغة الآلة .... 18
•
لغة C .... 24
•
لغة C++ و Visual C++ .... 25
•
لغة Java و j++ .... 26
•
لغة C# .... 27
-2-
التفكير
البرمجي
•
الخوارزمية Algorithm
.... 31
•
مخطط تنفيذ البرنامج Flowchart
.... 32
•
مجالات البرمجة .... 34
-3-
إعداد
اللغة
•
إعداد Visual
Studio NET .... 40
•
بيئة التطوير المتكاملة IDE .... 45
•
بدء مشروعٍ جديد .... 47
-
4 -
المتغيرات
Variables والثوابت Constants
•
المتغيّرات Variables
.... 53
- تعريف المتغيرات Declaring Variables .... 54
- نهاية الأمر في سي شارب .... 57
- التعليقات Comments .... 59
- حالة الأحرف .... 60
- برنامجك الأول في سي شارب .... 61
- شروط تسمية المتغيرات .... 67
- قراءة وتعديل قيم المتغيرات .... 68
- أنواع المتغيرات Types of Variables .... 69
- تحويل القيم بين أنواع
المتغيّرات .... 70
•
صف القيم Value
Tuple
.... 71
•
الثوابت Constants
.... 77
•
المُرقَّمَات Enumerators
.... 79
-5-
التعامل
مع الأرقام
•
أنواع المتغيّرات الرقميّة .... 83
•
المعامل sizeof .... 85
•
الفواصل الرقمية Digit
Separators
.... 86
•
المعاملات الحسابية Arithitic
Operators
.... 87
•
ترتيب تنفيذ العمليات الحسابية .... 88
•
زيادة قيمة متغير رقمي .... 89
•
تجاوز سعة المتغير الرقمي Overflow .... 92
•
تصحيح البرنامج Debugging
.... 95
•
دقة الأعداد العشريّة Decumal Types Precision .... 99
•
المتغيرات العشريّة Decimal
Data Type .... 106
•
القيم الرقمية الشاذّة Infinity
و NaN .... 107
-6-
نظام
العدّ الثنائي والعمليات المنطقية
•
النظام الثنائي Binary
System .... 111
•
أنظمة العد .... 113
•
أقصى عدد عشري يقبله عدد من الخانات في النظام الثنائي .... 117
•
الوحدة الثنائية Byte
.... 118
•
الإزاحة إلى اليمين واليسار .... 121
•
الأعداد الموجبة والأعداد السالبة .... 124
•
العمليّات الحسابيّة في النظام الثنائي .... 126
•
المتغيرات المنطقية Boolean
Variables .... 127
•
المعاملات المنطقيّة Logical
Operators:
.... 130
- المعامل "ليس" NOT .... 131
- المعامل "و" AND .... 133
- المعامل "أو" OR .... 136
- المعامل "أو المقصورة"
XOR .... 139
•
إجراء عملية الجمع باستخدام العمليات المنطقية .... 142
•
المؤشّرات Flags والأقنعة Masks .... 146
- تكوين قناع And .... 148
- تكوين قناع Or .... 152
- تكوين قناع XOR .... 153
- المرقّمات Enums كمؤشّرات Flags
.... 155
•
أنظمة عد أخرى .... 157
-7-
جمل
الشرط
•
جملة الشرط if
Statement
.... 160
- جملة الشرط if else .... 162
- كيف تعمل جملة الشرط .... 165
- قطع الشرط Short-Circuiting .... 167
•
جملة تبديل الحالة switch
statement
.... 170
•
تعبير تبديل الحالة switch
expression
.... 175
•
المعامل الثلاثي Ternary
operator (?)
.... 178
•
أمر القفز goto .... 179
-8-
حلقات
التكرار Loops
•
حلقة التكرار "من إلى" for Loop .... 182
- فهم كيف تعمل الحلقة for .... 184
- التكرار المعكوس .... 185
- أمر الخروج break .... 185
- أمر الاستمرار continue .... 186
- معاملات الحلقة for .... 187
•
حلقة الدوران do…while
.... 189
- صيغة الدوران اللانهائيّة .... 190
•
حلقة التكرار while .... 192
•
الجمل المتداخلة Nested
Statements
.... 194
- تنسيق المقاطع المتداخلة .... 195
- استخدام الأمر Continue في المقاطع المتداخلة .... 197
-9-
المصفوفات
Arrays
•
ما هي المصفوفة؟ .... 199
•
تعريف المصفوفة Array
Declaration
.... 200
•
التعامل مع خانات المصفوفة .... 201
•
تجاوز عدد خانات المصفوفة .... 203
•
وضع القيم الابتدائيّة للمصفوفات Initializing Arrays .... 204
•
المصفوفة وحلقات التكرار Loops .... 205
- حلقة التكرار foreach .... 207
•
نسخ المصفوفات .... 209
•
حدود المصفوفة Array
Bounds .... 212
•
تغيير عدد خانات المصفوفات .... 213
- الاحتفاظ ببيانات المصفوفة عند
تغيير حجمها .... 214
- محو المصفوفة .... 217
•
البحث في المصفوفة .... 218
•
عكس خانات المصفوفة .... 220
•
أصغر وأكبر قيمة في المصفوفة .... 224
•
ترتيب المصفوفة بالاختيار Selection Sort .... 226
•
المصفوفة متعدّدة الأبعاد Multidimensional Array .... 229
- وضع القيم الابتدائية في
المصفوفات متعدّدة البعد .... 231
- المرور عبر خانات مصفوفة متعددة
الأبعاد .... 232
- تغيير عدد خانات المصفوفة متعددة
الأبعاد .... 234
•
مصفوفة المصفوفات Array
of Arrays .... 235
- مصفوفة المصفوفات متعددة الأبعاد
.... 237
•
الفهرس Index ونطاق الخانات Range .... 238
- استخدام الفهرس مع المصفوفة ....
240
- استخدام النطاق مع المصفوفة ....
241
-10-
التعامل
مع الحروف والنصوص
•
ترميز ASCII .... 244
•
الحروف Characters
.... 249
•
النصوص Strings .... 251
•
النصوص والحروف .... 252
•
النصوص والأعداد .... 253
•
تشبيك النصوص Concatenation
.... 254
- النص التعويضي Interpolated String .... 256
- معالج النص التعويضي Interpolated String Handler .... 259
•
استخدام الفهرس والنطاق مع النص .... 261
•
هل النصوص مرنة؟ .... 262
•
مقارنة النصوص .... 264
-11-
التعامل
مع الكائنات Objects
•
تعريف الكائن .... 266
•
العدم null .... 267
•
إنشاء نسخة جديدة من الكائن باستخدام الكلمة new .... 270
•
الأنواع القيمية Value
Types
والأنواع المرجعية Reference
Types .... 271
•
تعريف مصفوفة من الكائنات .... 277
•
تحويل الكائن إلى نوع آخر Type Conversion .... 278
•
الكائن المرن dynamic .... 279
•
استنتاج نوع المتغير Type
Inference .... 280
•
اسم العنصر nameof .... 282
-12-
كتابة
واستخدام الدوال Functions
•
لماذا نحتاج إلى الدوال؟ .... 284
•
تعريف الدوال .... 286
- كيفية استدعاء الدالة؟ .... 288
- التحقق من صحة المدخلات Validation .... 290
•
المعاملات Parameters
.... 292
- اتجاه المعامل Parameter Direction .... 293
o معاملات الإدخال القيمية Value Parameters .... 293
o المعاملات المرجعية ref .... 294
o معاملات الإدخال المرجعية in .... 298
o معاملات الإخراج المرجعية out .... 300
- متطلبات استدعاء الدوال .... 301
- المعاملات الاختياريّة Optional Parameters .... 302
- مصفوفة المعاملات params .... 304
- المعامل المصفوفة Array Parameter .... 306
•
أنواع أخرى للقيم المعادة Return Values .... 309
- الدوال التي تعيد صفا من القيم Tuple .... 316
- الدوال التي تعيد قيما مرجعية ref Returns .... 318
- الدوال التي تعيد قيما مرجعية
للقراءة فقط ref readonly .... 322
•
دالة ترتيب الفقاعة Bubble
Sort
.... 323
•
الدوال عامة النوع Generic
Type Functions .... 329
•
المندوب Delegate .... 333
- استخدام المندوب كمعامل للدالة
.... 336
- المندوب عام النوع Generic Type Delegate .... 338
•
الدوال المجهولة Anonymous
Functions
.... 340
•
الدوال الفورية Lambda
Expressions .... 341
•
الدوال الموضعية Local
Functions
.... 347
•
الدوال مختصرة التعريف Expression-bodied Functions .... 350
•
دالة بداية البرنامج Program
Startup .... 351
-13-
الدوال
الارتدادية Recursive
Functions
•
استدعاء الدالة لنفسها .... 356
•
تنفيذ حلقة تكرار بدالة ارتداديّة .... 359
•
حساب مجموع مصفوفة ارتداديّا .... 362
•
دالة المضروب Factorial .... 365
•
الترتيب السريع Quick
Sort .... 368
•
البحث الثنائيّ Binary
Search .... 384
-14-
السجلات
Structures
•
تعريف السجل .... 390
•
حجز السجل ووضع القيم الابتدائية فيه .... 393
•
التغليف Encapsulation .... 397
•
الحماية Protection .... 398
•
الاستشعار الذكي Intillisense .... 399
•
السجلات الجزئية Partial
Structures .... 400
•
نسخ سجل إلى آخر .... 401
•
اختبار تساوي سجلين .... 402
•
استبدال المعامل Operator
Overriding .... 404
•
السجلات والمصفوفات .... 406
•
السجلات والدوال .... 408
- الدوال التي تعيد سجلات .... 408
- السجلات كمعاملات للدوال .... 415
- الدوال كأعضاء للسجلات .... 416
•
العناصر المشتركة (الثابتة) Static Members .... 422
•
حدث إنشاء السجلّ Constructor .... 426
•
السجلات المتداخلة Nested
Structures .... 432
•
الخصائص Properties
.... 435
- المتغيّرات والخصائص .... 435
- تعريف الخصائص .... 439
- قصاصات الكود Code Snippet .... 441
- الخصائص التي يمكنك قراءتها فقط Read-Only Properties .... 443
- الخصائص التي يمكنك تغييرها فقط Write-Only Properties .... 444
- الخصائص التي يمكن إعدادها فقط Init-Only Properties .... 445
- مجالات تعريف مختلفة للخاصية .... 446
- الخصائص ذاتية التعريف Auto Implemented Properties .... 447
- المفهرس Indexer واستخدام السجل كمصفوفة .... 449
•
مطابقة أنماط الخصائص Property Pattern Matching .... 451
•
سجلات للقراءة فقط Read
Only Structs
.... 454
- دوال للقراءة فقط Read Only Functions .... 456
•
تعريف وإطلاق الأحداث Events .... 461
- سجل المنبه Clock Structure .... 463
- الأحداث التي تعيد قيمة .... 468
- إزالة معالج الحدث .... 469
•
تعليقات XML .... 471
-15-
الفئات
Classes
•
ما هي الفئة؟ .... 481
•
تعريف الفئة .... 482
•
تعريف عناصر الفئة .... 483
•
الفروق بين الفئات والسجلات .... 485
•
الإنشاء من خلال الاستخدام .... 448
•
الفئات الجزئية Partial
Classes
.... 490
•
تعدد تعريفات الوسائل Method Overloading .... 492
- الشروط التي تجب مراعاتها عند
تعدّد التعريفات .... 495
•
نطاقات الأسماء Namespaces
.... 497
- جملة نطاق الاسم Namespace Statement .... 500
- نطاقات الاسم العامة Global Namespaces .... 500
•
مناطق الكود Regions .... 501
•
الوسائل الإضافية Extension
Methods .... 502
•
منشئ الفئة Class
Constructor .... 506
•
مفكك الفئة Class
Destructor
.... 508
- أنماط صف القيم والمفكك Tuple and Decostructor Patterns .... 509
•
تعريف وإطلاق الأحداث في الفئات .... 511
•
وضع القيم الابتدائية للكائنات Object Initialization .... 515
•
الأنواع المجهولة Anonymous
Types .... 518
•
مجال العناصر Members
Scope .... 520
•
نطاق المتغيرات Variables
Scope .... 522
- الحقول Fields .... 522
- المتغيّرات الموضعيّة Local Variables .... 523
- المتغيرات المقطعية Block Variables .... 523
- عمر المتغيّر Variable Lifetime .... 526
•
فحص أنواع المتغيّرات .... 528
•
مطابقة أنماط الأـنواع Type Pattern Matching .... 532
•
مصمم الفئات Class
Designer
.... 537
-16-
نماذج
الويندوز Windows
Forms
•
تطبيقك الأول في عالم النوافذ ....
541
- في بيئة التطوير IDE .... 543
- الفئات في كل مكان .... 545
- صندوق الأدوات .... 546
- نافذة الخصائص .... 547
- بعض خصائص مربع النص .... 548
•
البرمجة الموجهة بالأحداث Event-driven Programming .... 551
•
استخدام فئة المنبه في تطبيقات الويندوز .... 555
•
استخدام النموذج والأدوات كمعاملات للدوال .... 558
-17-
السمات
Attributes
•
السمات الخاصة Custom
Attrinutes
.... 562
•
تعريف حقول عامة للسمة .... 565
•
تحديد العناصر المسموح باستخدام السمة معها .... 565
•
استخدام قيم السمات .... 568
•
السمات عامة النوع Generic
Attributes
.... 570
•
معالج النص التعويضي Interpolated
String Handler
.... 573
- معالجة المحاذاة والتنسيق .... 578
- إنشاء معالج تعويضي خاص بفئة
معينة .... 581
- إرسال معاملات إضافية للمعالج
.... 585
- إيقاف تفيذ المعالج في أي وقت
.... 588
- محلل النص التعويضي Interpolated Parser .... 592
-18-
تراكيب
البيانات Data Structures
•
أهم ما سنتعلمه في هذا الفصل .... 604
•
المجموعات Collections .... 605
•
القائمة الخطية Linear
List .... 606
•
المجموعات عامة النوع Generic Type Collections .... 633
•
القائمة المترابطة Linked
List .... 637
- معالجة الأخطاء Handling Errors .... 644
- اختبارات الوحدات Unit Tests .... 653
- إنشاء خطأ خاص Custom Exception .... 669
- إنشاء عدادات مخصصة بتعريف
الدالة GetEnumerator .... 701
- تعريف بعض المعاملات للقائمة Overloading Operators .... 719
- معالجة انهيار الاختبارات Test Crash .... 723
- التحويل الضمني Implicit والتحويل الصريح Explicit
.... 732
- قائمة القوائم .... 738
•
فئة الطابور Queue
Class .... 739
- الطابور المبني بالمصفوفة .... 739
- إنشاء مكتبة كود Code Library .... 748
- الطابور المبني بالقائمة
المترابطة .... 755
- فيم نستخدم فئة الطابور؟ .... 757
•
فئة الرصة Stack .... 758
- الرصة المبنية بالمصفوفة .... 758
- الرصة المبنية بالقائمة
المترابطة .... 763
- عكس خانات مصفوفة باستخدام الرصة
.... 765
- الرصة والإجراءات الارتدادية .... 766
- التراجع والإعادة باستخدام الرصة
.... 766
- إنشاء آلة حاسبة باستخدام الرصة .... 784
- التعويض في المعادلات .... 798
- تطبيقات أخرى للرصة .... 800
•
فئة الشجرة Tree
Class .... 801
- ترتيب مصفوفة باستخدام الشجرة .... 805
- الشجرة متعددة الأفرع .... 810
- إنشاء آلة حاسبة باستخدام الشجرة
.... 813
•
مصفوفة الخانات الثنائية BitArray .... 823
-19-
الوراثة
Inheritance
•
إعادة استخدام الكود .... 829
•
الوراثة Inheritance
.... 832
•
تعدد تعريفات الوسائل Method Overloading .... 834
•
إخفاء وسائل الفئة الأم .... 836
•
استبدال الوسائل Method
Overriding
.... 838
- التحكم في استدعاء الدوال
المستبدلة .... 841
- منع الاستبدال بكلمة sealed
.... 843
•
وراثة فئات دوت نت .... 843
•
منع الوراثة بكلمة sealed
.... 847
•
تعدد الأشكال Polymorphism وإنشاء فئات
الأشكال الهندسية .... 848
•
التحويل من وإلى الفئة الأم .... 857
•
منشئ الكائن Constructor
.... 859
•
مُنهِي الكائن Finalizer .... 863
•
الفئات الأساسية المجردة Abstract Base Classes .... 866
•
مجال الفئة وحماية الأعضاء الخاصة .... 869
•
مطابقة الأنماط المتداخلة .... 873
•
إنشاء آلة حاسبة بالفئة المجردة .... 876
•
نبذة عن كتابة مترجمات الكود Compilers
.... 889
-20-
الواجهات
Interfaces
•
تعريف الواجهة .... 894
•
تمثيل الواجهة Implementing
Interface .... 896
- تمثيل أكثر من واجهة .... 898
- التمثيل الصريح Explicit Implementation .... 901
- التمثيل الافتراضي Default Implementation .... 903
•
الواجهة كامتداد للفئات .... 906
•
واجهة القابلية للعد IEnumerable
Interface
.... 909
•
واجهة القابلية للمقارنة IComparable .... 913
- ترتيب القائمة المترابطة .... 917
- البحث الثنائي في القائمة
المترابطة المرتبة .... 918
- تعريف المعاملات & و | و ^
في القائمة المترابطة .... 920
•
واجهة القابلية للفناء IDisposable Interface .... 924
•
التفاوت Variance .... 933
-21-
أبنية
البيانات Records
•
فئة البيانات Record
Class
.... 940
•
الصيغة الموضعية Positional
Syntax
.... 942
- إضافة سمات Attributes للصيغة الموضعية .... 943
- كتابة تعليقات XML للصيغة الموضعية .... 944
- صيغة التعريف المختلطة .... 944
- وراثة فئة البيانات Record Class Inheritance .... 948
- تمثيل الواجهات في الصيغة
الموضعية .... 950
•
فئة البيانات عامة النوع Generic Record Class .... 952
•
سجل البيانات Record
Structure
.... 952
-22-
دوال
API
•
برمجة الويندوز Windows
Programming
.... 954
•
أين توجد دوال API؟ .... 960
•
استدعاء دوال API في سي شارب .... 960
•
منح الدالة اسما مستعارا .... 962
•
عرض مربع حوار اختيار مجلد .... 963
•
تغيير شكل النموذج .... 964
•
إغلاق الجهاز من برنامجك .... 965
•
تعطيل بعض الأزرار الخاصة عن العمل .... 966
•
التوجيهات الشرطية Conditional
Directives
.... 968
•
خاتمة .... 970
•
الفهرس .... 973
•
عن الكاتب .... 992
ليست هناك تعليقات:
إرسال تعليق
ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.