‏إظهار الرسائل ذات التسميات csharp-basic. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات csharp-basic. إظهار كافة الرسائل

أساسيات البرمجة - ما هي المصفوفات في سي شارب C# - what are Arrays

أساسيات البرمجة - ما هي  المصفوفات  في سي شارب C# - what are Arrays

ما هي  المصفوفات  في سي شارب C# - what are Arrays

Index يعني الفهرس، Data  اي البيانات اي القيم

ما هي  المصفوفات  في سي شارب C# - what are Arrays

مثل لغات البرمجة الأخرى ، المصفوفة في C # هي مجموعة من أنواع العناصر المتشابهة التي لها موقع ذاكرة متجاور.  في C # ، المصفوفة هي كائن من النوع الأساسي System.Array.  في C # ، يبدأ فهرس النصفوفة من 0. يمكننا تخزين مجموعة ثابتة فقط من العناصر في مصفوفة C #.
المصفوفة:- تستخدم لتخزين عدد من المتغيرات لنوع واحد  من البيانات بمعنى نريد مثلا 10 متغيرات من نوع int فبدلا  من تعريف 10 متغيران نعرف مصفوفة عدد عناصرها 10 ونوعها int ويمكن للوصول للعنصر عن طريق فهرس المصفوفة  index ويبدأ  الصفر وفي بعض اللغات البرمجية الاخرى يبدا من 1ولكن في السي شارب يبدا من الصفر .المصفوفة لا يمكن تغيرها حجمها فيما بعد عند تشغيل البرنامج بمعنى 10 عناصر لا يمكن اضافة العنصر 11 وتمرير  قيمة له وسينتج خطأ.

أساسيات البرمجة - المصفوفات C# - Arrays سي شارب

ما هي مميزات ومزايا المصفوفات في سي شارب C # Array

  •  تحسين الكود (رمز أقل)
  •  دخول عشوائي
  •  سهولة اجتياز البيانات
  •  سهولة معالجة البيانات
  •  من السهل فرز البيانات وما إلى ذلك.

ماهي سلبيات و عيوب المصفوفات في سي شارب C # Array

  •  حجم ثابت

ما هي أنواع المصفوفة C #

 هناك 3 أنواع من المصفوفات في برمجة C #:
  •  مصفوفة أحادي البعد
  •  مصفوفة متعدد الأبعاد
  •  مصفوفة ماتريكس 
ملاحظة توجد روابط لدروس تشرح هذه المصفوفة بالأسفل 

كيف تعرف مصفوفة في لغة سي شارب c#

الصيغة العامة:-
  الصيغة العامة للمصفوقات في سي شارب

;double[] balance


التصريح عن المصفوفة  لا يعني انه تم حجز مكان في الذاكرة كما في المتغيرات العادية.في كالفئات نحتاج الى حجز لها مكان باستخدام  الكلمة المحجوزة new . مثال على تهئية المصفوفة اي انشاءالمصفوفة في الذاكرة.

 تهئية المصفوفات في سي شارب # c

double[] balance = new double[10];



إسناد القيمة
 إسناد القيم في المصفوفات سي شارب #c 

double[] balance = new double[10];

balance[0] = 4500.0;


double[] balance = { 2340.0, 4523.69, 3421.0};


int [] marks = new int[5] { 99, 98, 92, 97, 95};


int [] marks = new int[] { 99, 98, 92, 97, 95};



نسخ قيم مصفوفة الى مصفوفة اخرى 
  نسخ قيم مصفوفة الي مصفوفة أخرى في سي شارب #c

int [] marks = new int[] { 99, 98, 92, 97, 95};

int[] score = marks;



الوصول لعناصر المصفوفة

 الوصول إلى عناصر المصفوفة في سي شارب#cdouble salary = balance[9];

المثال التالي تطبيق على ما سبق
  مثال على طباعة وإنشاء مصفوفة باستخدام حلقة التكرار for في شي شارب

using System;
namespace ArrayApplication
    {
      class MyArray
           {
               static void Main(string[] args)
             {
                 int [] n = new int[10]; /* n is an array of 10 integers */
                 int i,j;


                  /*انشاء لمصفوفة في الذاكرة n */ 
                     for ( i = 0; i < 10; i++ ) { n[ i ] = i + 100; }
                  /*'طباعة قيم المصفوفة */
                                for (j = 0; j < 10; j++ )
                         { Console.WriteLine("Element[{0}] = {1}", j, n[j]); }
                            Console.ReadKey();
                   }
           }
 }


الناتج
 طباعة عناصر المصفوفة في سي شارب c#
Element[0] = 100

Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109




حلقة التكرار الدوارة foreach Loop
  مثال على إنشاء مصفوفة باستخدام حلقة التكرار 

using System;

namespace ArrayApplication
{
     class MyArray
      {
         static void Main(string[] args)
         {
               int [] n = new int[10]; /*مصفوفة رقمية من عدد صحيح عدد عناصرها 10 */


               /*إنشاء المصفوفة */ 
              for ( int i = 0; i < 10; i++ )
              { n[i] = i + 100; }
              /*طباعة المصفوفة */
              foreach (int j in n )
              {
                  int i = j-100;
                    Console.WriteLine("Element[{0}] = {1}", i, j); i++;
               } Console.ReadKey();
            }
        }
}


الناتج
 مخرجات كود تعريف مصفوفة باستخدام foreach

Element[0] = 100

Element[1] = 101

Element[2] = 102

Element[3] = 103

Element[4] = 104

Element[5] = 105

Element[6] = 106

Element[7] = 107

Element[8] = 108

Element[9] = 109



للمزيد عن تفاصيل المصفوفات

اضغط على الرابط الوصف
Multi-dimensional arraysالمصفوفة ثنائية البعد
Jagged arraysالمصفوفة متعددة الابعاد 
Passing arrays to functionsتمرير المصفوفة للدوال
Param arraysتمرير قيم غير معروفة الى الدالة
The Array Classتعريف فضاء اسماء اساسه كل المصفوفات






Ahmed Ata Almahallawi
Freelancer
IT Help Desk,
SEO experience,PHP,C#,ASPX,SQL


الفرق بين دالة احصل get() ودالة الإسناد set() في جافا وسي شارب Different between method set &get#

الفرق بين دالة احصل get() ودالة الإسناد set() في جافا وسي شارب

 Different between method set &get#

أساسيات البرمجة سي شارب التعامل مع الملفات C# - File I/O

 التعامل مع الملفات C# - File I/O

الملف file :-

هو مجموعة من البيانات مخزنة على القرص لها اسم وامتداد يميز نوعها والبرنامج الذي يمكن التعامل معها او فتحها.

التدفق Stream:-

هو تدفق البيانات من خلال أدوات الاتصال أي عملية مرور -نقل البيانات خلال الكوابل ويوجد نوعان من التدفق أو الاستريم تدافق داخل ويسمى Input stream وتدفق خارج يسمى Output Stream.

فئة الادخال والاخراج C# I/O Classes

توجد  العديد من الفئة الادخال والاخرات التي تتعامل مع الملفات مثل انشاء ملف جديد , قراءة , كتابة ,فتح ..... الى اخره في الجدول التالي يوضح أهم الفئات التي تتعامل مع الملفات في لغة سي شارب.

فئة الادخال والاخراجالوصف
BinaryReaderقراءة البيانات البسيطة من تدفق الثنائي
BinaryWriterكتابة البيانات البسيطة الى الصيغة الثنائية
BufferedStreamتخزين مؤقت للبيانات في صيغة بايت من اجل بدأ عملية التدفق
Directoryيساعد على معالحة هيكل المجلدات او المسارات
DirectoryInfoيساعد على معالجة المعلومات على المجلدات
DriveInfoيزودنا بمعلومات عن السواقة
Fileيساعد في معالجة الملفات
FileInfoيساعد في معالجة معلومات الملف
FileStreamيستخدم للقراءة والكتابة على الملفات من اي مكان
MemoryStreamيستخدم للوصول للذاكراة العشوائية للملفات المخزنة في الذاكراة
Pathيستخدم لمعالجة المسار
StreamReaderيستخدم لقراءة الحروف من تدفق البايت
StreamWriterيستخدم لكتابة الحروف الى تدفق البايت
StringReaderيستخدم للقراءة النصوص من المخزن المؤقت 
StringWriterيستخدم للكتابة الي مخزن النصوص المؤقت


فئة تدفق الملف FileStream:-

تستخدم هذه الفئة للقراءة والكتابة واغلاق الملفات . للتعامل مع الملفات عند القراءة او انشاء ملف جديد فيجب انشاء كائن من هذه الفئة 
الصيغة العامة لانشاء كائن من الفئة كالتالي:-


FileStream <object_name> = new FileStream( <file_name>,

<FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);

مثال على انشاء كائن لقراءة ملف.

FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);


الجدول التالي يوضح بعض المتغيرات البارميترات المررة من خلال انشاء كائن تدفق الملف.


الباراميتر
الوصف
FileMode
FileMode وضع الملف عبارة عن مجاميع مرقمة لدول تستخدم في فتح الملفات
وتتكون اعضاء وضع الملف منالتالي

  1. Append:يستخدم لفتح ملف موجود ووضع مؤشر الماوس للكتابة في اخر سطر في الملف
  2. Create: يستخدم لانشاء ملف جديد
  3. CreateNew: انشاء ملف جديد حسب نظام التشغيل المحدد
  4. Open: فتح ملف مسبق
  5. OpenOrCreate: فتح ملف مسبق في حال لم يكن موجد يقوم بانشاءه وفتحه
  6. Truncate:فتح الملف موجود وعمل اقتصاص بحجمه الى يصبح صفر بايت بمعنى حذف ما بالملف وليس الملف
FileAccess
FileAccessl مجمع تراقيمي يحتوي علىالاعضاء التالية:
ReadوReadWrite وWrite.
FileShare
FileShare مجمع مرقم يحتوي على التالي

  1. Inheritable: يسمح بوارثة الاذونات الى الابناء
  2. None: لايسمح بمشاركة الملف الحالي
  3. Read:يسمح للملف للقراءة فقط
  4. ReadWrite:يسمح للقراءة والكتابة على الملف
  5. Write: يسمح للكتابة على الملف

مثال نظرة عامة على فئة التدفق.

using System;
using System.IO;

namespace FileIOApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            FileStream F = new FileStream("test.dat", 
            FileMode.OpenOrCreate, FileAccess.ReadWrite);

            for (int i = 1; i <= 20; i++)
            {
                F.WriteByte((byte)i);
            }

            F.Position = 0;

            for (int i = 0; i <= 20; i++)
            {
                Console.Write(F.ReadByte() + " ");
            }
            F.Close();
            Console.ReadKey();
        }
    }
}
ناتج المثال
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1



سيتم التحدث عن الملفات بالتفاصيل في برمجة متقدمة لاحقا

لمتابعتي
تويتر: @aalmahallawi
IT Help Desk,
SEO Arabic Expert ,PHP,C#,ASPX
Al alami st
gaza -jabaliaGaza Strip
Palestine
Email :ahmed.almahallawi@gmail.com
DOB: 05/10/1984

أساسيات البرمجة سي شارب معالجة الاستثناءات C# - Exception Handling

 معالجة الاستثناءات C# - Exception Handling

الأسثناء Exception :-

الإستثناء هو خطأ يظهر أثناء تشغيل البرنامج سواء كان خطأ مفتعل أو نتيجة سهو المبرمج عن وضع قيود محدد للتعامل مع البرنامج مثلا حقل نص يستخدم لادخال الارقام وسها المبرمج عن وضع قيد يجبر المستخدم على ادخال ارقام بدل نصوص.او مثل القسم على صفر.
يقسم معالجة الاستثناءات الى اربع اقسام.
  1. try وفي هذا البلوك يتم وضع الكود الذي يجب معالجة استثناء له عند حدوث الاخطاء ويجب ان يتبعه اما واحد من catch او عدة جمل Catch.
  2. catch وهي تشير الى وقوع الخطأ وتم العثور عليه وهنا يتم معالجة الخطأ عند حدوثه.
  3. finally وتستخدم سواء حدثجب   الخطأ او  لم يحدث سوف يتم  تنفيذ الكود الذي تحتويه مثل إغلاق ملف. نفترض اننا قمنا بفتح قاعدة بيانات او ملف وحدث خطأ فهنا يجب إغلاق الملف سواء حدث الخطأ أو لم يحدث.
  4. throw وهي تقوم برمي الاخطأ اي بمعنى تجاهل الخطأ والانتقال الى الكود التالي لتنفيذه وغالبا ما يستخدم من قبل المبرمجين المبتدائين وذوي قلة الخبرة ولكن لا يمنع ذوي الاحتراف استخدامه خاصة لكتابة الاخطأ في ملف log.

الصيغة العامة لمعالجة الإستثناءات.

try
{
   //الكود الذي قد ينتج عنه خطأ
}
catch( ExceptionName e1 )
{ 
   // الاسثناء الاول
}
catch( ExceptionName e2 )
{
   // الاسثناء الثاني
}
catch( ExceptionName eN )
{
   // الاسثناء الثالث
}
finally
{
   // الجملة التالية ستنفذ سواء حدث خطأ أو لم يحدث
}

فئة معالجة الاستثناءات

1- System.ApplicationException

هذا الفئة هي التي يمكن للمبرمجين اشتقاقها لتعريف استثناءات خاصة  بهم او ببرامجهم.

2- System.SystemException

وهذه الفئة هي الفئة الاساسية التي   تحتوي على الاستثناءات المعرفة مسبقا من قبل اللغة ومن اهم الاستثناءات المعرفة سنردها في الجدول التالي.

اسم فئة الاستثناءالوصف
System.IO.IOExceptionمعالجة اسثناءات الادخال والاخراج مثل اخطاء فتح ملف او الكتابة في ملف
System.IndexOutOfRangeExceptionاسثناء معالجة الفهرس الذي خارج المدى في المصفوفات.
System.ArrayTypeMismatchExceptionاستثناء معالجة عند حدوث خطأ في نوع  المصفوفة مثل دمج مصفوفتين ليست من نفس نوع البيانات
System.NullReferenceExceptionاستثناء عندما لا يوجد مرجع للكائن او انها يشير لقيمة فارغة
System.DivideByZeroExceptionاستثناء القسمة على صفر
System.InvalidCastExceptionاستثناء عند التحويل من نوع بيانات الى اخر .
System.OutOfMemoryExceptionاستثناء عندما لا توجد مكان في الذاكرة.
System.StackOverflowExceptionاسثناء يحدث عندما يصبح مدى المكدس لا يتسع قيم.

مثال على معالجة الاستثناءات:-

في المثال التالي نعالج خطأ القسمة على صفر.
using System;
namespace ErrorHandlingApplication
{
    class DivNumbers
    {
        int result;
        DivNumbers()
        {
            result = 0;
        }
        public void division(int num1, int num2)
        {
            try
            {
                result = num1 / num2;
            }
            catch (DivideByZeroException e)
            {
                Console.WriteLine("Exception caught: {0}", e);
            }
            finally
            {
                Console.WriteLine("Result: {0}", result);
            }

        }
        static void Main(string[] args)
        {
            DivNumbers d = new DivNumbers();
            d.division(25, 0);
            Console.ReadKey();
        }
    }
}


ناتج الكود:-

Exception caught: System.DivideByZeroException: Attempted to divide by zero. 
at ...
Result: 0


تعريف استثناء من قبل المستخدم.

عند تعريف استثناء من قبل المبرمج  فيجب وراثة الفئة ApplicationException كما ذكرنا سابقا.


using System;
namespace UserDefinedException
{
   class TestTemperature
   {
      static void Main(string[] args)
      {
         Temperature temp = new Temperature();
         try
         {
            temp.showTemp();
         }
         catch(TempIsZeroException e)
         {
            Console.WriteLine("TempIsZeroException: {0}", e.Message);
         }
         Console.ReadKey();
      }
   }
}
public class TempIsZeroException: ApplicationException
{
   public TempIsZeroException(string message): base(message)
   {
   }
}
public class Temperature
{
   int temperature = 0;
   public void showTemp()
   {
      if(temperature == 0)
      {
         throw (new TempIsZeroException("Zero Temperature found"));
      }
      else
      {
         Console.WriteLine("Temperature: {0}", temperature);
      }
   }
}

تحميل الكود السابق:- ملاحظة الانتظار 5 ثواني وسيتم تحويلك لصفحة التحميل وشكرا

ناتج الكود:-
TempIsZeroException: Zero Temperature found

كائن throw الصيغة العامة لالقاء اسثتناء.

Catch(Exception e)
{
   ...
   Throw e
}


Ahmed Ata Almahallawi
Freelancer
IT
IT Help Desk,
SEO experience,PHP,C#,ASPX
Al alami st
gaza -jabaliaGaza Strip
Palestine
ahmed.almahallawi@gmail.com
DOB: 05/10/1984
by +Ahmed Almahallawi 
18/12/2013