رفتن به مطلب
انیتا

برنامه نویسی آموزش زبان سی شارپ

پست های پیشنهاد شده

انیتا

2019-11-09_18-43-11.jpg.0b85855878232f25e21eb1d238fadb49.jpg

سی شارپ : یک زبان برنامه نویسی مدرن و شی گرا است که توسط مایکروسافت تهیه شده است. در واقع C# طراحی شد تا نقش یک زبان برنامه نویسی ساده، مدرن، چند منظوره و شی گرا را برای چهارچوب کاری .NET ایفا کند. از طرف دیگر، C# مفهوم های کلیدی و قابلیت های خوب سایر زبان های برنامه نویسی به ویژه جاوا را قرض کرده و درون خود دارد.
از لحاظ نظری، C# می تواند تا سطح کد ماشین یا اسمبلی کامپایل شود، اما در کارکرد واقعی، همیشه به همراه چهارچوب کاری NET. استفاده می شود. بنابراین در برنامه ای که با زبان C# نوشته شده باشد، برای اجرا بر روی کامپیوتر، نیازمند نصب چهارچوب کاری .NET می باشد. با وجود این که چهارچوب کاری .NET امکان استفاده از طیف وسیعی از زبان های برنامه نویسی را بر روی ویندوز به ما می دهد،

NET Framework. : مجموعه از امکانات در قالب فایل های اسمبلی ،که هر فایل اسمبلی مجموعه از فضاهای نامی(name spaces) می باشد و هر فضای نامی مجموعه از کلاس ها مرتبط به هم با توجه به عملکردشان میباشند. مانند CLR , ASP.NET , Windows Forms .

محیط های توسعه (IDE) برای C# :
(Visual Studio (VS
(Visual C# 2010 Express (VCE
Visual Web Developer
(که ما از Visual Studio استفاده میکنیم .)


به منظور ایجاد پروژه جدید روی گزینه ی File -> New -> Project.... کلیک کنید.
گزینه ی ( Console Application . NET Framework ) را کلیک کنید.
برای پروژه نامی تعریف کنید و ان را بسازید.

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
انیتا

ایجاد کردن برنامه Hello World

برای نوشتن این برنامه کد زیر را دنبال کنید :



using System;

namespace HelloWorldApplication {
   class HelloWorld {
      static void Main(string[] args) {
         /* my first program in C# */
         Console.WriteLine("Hello World");
         Console.ReadKey();
      }
   }
}

وقتی کد بالا را کامپایل میکنید (میتوانید از F5 هم استفاده کنید) نتیجه زیر را میبینید :

Hello World

توضیحات کد :
اولین خط عبارت using system را میبینید ، برای اجرا کد ها باید از یک سری name space هایی استفاده کنیم که به مرور زمان با انها اشنا میشوید.
در خط بعدی namespace ، مجموعه از کلاس هایی هست که ما داخل ان مینویسیم.
مثلا namesspace HelloWorldApplication متشکل از کلاس HelloWorld است.
خط بعدی کلاس HelloWorld که از داده ها و متد های است که برنامه شما را میسازد.
در واقع متد ها عملکرد کلاس را تعریف میکنند و اینجا ما متد main را داریم.
علامت /*...*/ یا // نشان دهنده کامنت است ، میتوانید توضیحات اضافه برنامه را برای فهم بهتر ان انجا یادداشت کنید و این قسمت هیچوقت توسط کامپیایلر اجرا نمیشود .

خط بعد عبارت ;("Console.WriteLine("Hello World را میبینید که اطلاعات داخل ".." برای ما چاپ میشود.
پس عبارت WriteLine داده های ما را روی صفحه نمایش میدهد.
و خط اخر عبارت Console.ReadKey را داریم که باعث میشود برنامه به محض اجرا بسته نشود و منتظر فشردن یه کلید از جانب شماست که بسته شود.

نکات که در c# باید بدانیم :
به حروف بزرگ و کوچک حساس هست.
پایان هر خط باید سمی کالن ( ; ) گذاشته شود.
و برنامه از متد main شروع میشود.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
انیتا

عملکرد کاراکترهای کنترلی کد:

کاراکترهای کنترلی، کاراکترهای ترکیبی هستند که با یک بک اسلش' \ ' شروع میشوند و به دنبال آنها یک حرف یا عدد می آید و یک رشته را با فرمت خاص نمایش میدهند.
برای مثال برای ایجاد یک خط جدید و قرار دادن رشته در آن میتوان از کاراکتر کنترلی n \استفاده کرد .

System.Console.WriteLine("Hello\nWorld!");

و خروجی:

 

Hello
World!

دیگر عملکردها به شرح زیر است :
n \ : خط جدید
r \ : سر سطر رفتن
t \ : حرکت به صورت افقی
v \ : حرکت به صورت عمودی
'\ : چاپ کوتیشن
"\ : چاپ دابل کوتیشن
0 \ : چاپ فضای خالی
b \ : حرکت به عقب

یکی از موارد استفاده از \\، نشان دادن مسیر یک فایل در ویندوز است ،به مثال زیر توجه کنید:

System.Console.WriteLine("C:\\Program Files\\Some Directory\\File.txt");

و نتیجه :

C:\Program Files\Some Directory\File.txt

علامت @ :
استفاده از علامت @ زمانی مناسب است که شما نمی خواهید از علامت بک اسلش برای نشان دادن یک کاراکتر کنترلی استفاده کنید.
استفاده از این علامت بسیار ساده است و کافی است که قبل از رشته مورد نظر آن را قرار دهید.

System.Console.WriteLine(@"yes\no:");

یکی دیگر از موارد استفاده از علامت @ چاپ رشته های چند خطی بدون استفاده از کاراکتر کنترلی n \است. به عنوان مثال :

Console.WriteLine(@"C# is a simple
modern
general-purpose
object-oriented programming language");

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
انیتا

متغیر ها در سی شارپ :

یک متغیر در زبان سی شارپ مکانی است که با یک نام دلخواه ، مشخص شده و میتواند یک داده نوع خاص را در خود نگه دارد.
مقدار یک متغیر در هر جای برنامه میتواند تغییر کند و قبل از اینکه در برنامه استفاده شود باید مقدار دهی شود در غیر صورت برنامه با خطای کامپایل مواجه میشود.



using System;

namespace HelloWorldApplication {
   class HelloWorld {
      static void Main(string[] args) {
         string text = " Hello World ";
         Console.WriteLine(text);
         Console.ReadKey();
      }
   }
}

و خروجی :

Hello World

در مثال بالا text نام متغیری است که عبارت Hello World در خودش نگه میدارد

هنگام تعریف داده باید نوع داد نیز مشخص شود .

هم چنین یک متغیر میتواند تعریف شده و بعدا مقدار دهی شود :



using System;

namespace HelloWorldApplication {
   class HelloWorld {
      static void Main(string[] args) {
         string text;
         text = " Hello World ";
         Console.WriteLine(text);
         Console.ReadKey();
      }
   }
}

هم چنین میتوانید چندین متغیر را با هم تعریف کنید :



int i, j, k, l = 0;

سی شارپ شامل چندین داده نوع مختلف برای انواع داده است برای مثال decimal ، float ، number ، string و ....

در اینجا به اختصار به تعریف انها میپردازیم :

byte: این نوع داده‌ی عددی فضایی معادل ۸ بیت را اشغال می‌کند و اعداد صحیح مثبت بین ۰ تا ۲۵۵± را در خود جای می‌دهد.

int: این نوع داده عددی فضایی معادل ۳۲ بیت را اشغال کرده و اعداد صحیح مثبت و منفی در بازه‌ی بین ۲۱۴۷۴۸۳۶۴۸- تا ۲۱۴۷۴۸۳۶۴۸+ را در خود ذخیره می‌کند.

long: این نوع داده عددی فضایی معادل ۶۴ بیت را اشغال کرده و اعداد صحیح مثبت و منفی در بازه‌ی بین ۹۲۲۳۳۷۲۰۳۶۸۵۴۷۷۵۸۰۸- تا ۹۲۲۳۳۷۲۰۳۶۸۵۴۷۷۵۸۰۷+ را در خود ذخیره می‌کند.

float: این نوع داده‌ی عددی فضایی معادل ۳۲ بیت را اشغال کرده و اعداد اعشاری مثبت و منفی در بازه‌ی بین ۳.۴۰۲۸۲۳e۳۸- تا ۳.۴۰۲۸۲۳e۳۸- را درون خود ذخیره می‌کند.

double: این نوع داده‌ی عددی فضایی معادل ۶۴ بیت را اشغال کرده و اعداد اعشاری مثبت و منفی در بازه‌ی بین ۱.۷۹۷۶۹۳۱۳۴۸۶۲۳۲e۳۰۸- تا ۱.۷۹۷۶۹۳۱۳۴۸۶۲۳۲e۳۰۸+ را درون خود ذخیره می‌کند. همچنین با استفاده از این نوع داده مقدار اعشاری به صورت اتوماتیک رند می‌شود.

decimal: این نوع داده‌ی عددی فضایی معادل ۱۲۸ بیت را اشغال کرده و اعداد اعشاری مثبت و منفی در بازه‌ی بین ۱۰e-۲ × ۱.۰ ± تا ۱۰e۲۸ × ۷.۹ ± را درون خود ذخیره می‌کند.


نکته : داده‌های عددی float و double معمولا برای اندازه گیری مقادیری که دقت در آنها معیار نیست مورد استفاده قرار می‌گیرند. مثلا فاصله، مسافت و … اما داده‌ی عددی decimal برای حالتی که دقت عددی مدنظر می‌باشد بکار گرفته خواهد شد مثل واحد پول، محاسبات حسابداری و …

char: این نوع داده‌ی رشته‌ای فضایی معادل ۱۶ بیت را اشغال کرده و تمام کاراکترهای یونی کد را درون خود ذخیره می‌کند.

string: این نوع داده‌ی رشته‌ای مجموعه‌ای از کاراکترها را در خود ذخیره می‌کند و متناسب با آنها فضایی را اشغال خواهد کرد.

bool: این نوع داده‌ی باینری فضایی معادل ۸ بیت را اشغال کرده و معمولا برای عبارتهای درست و غلط یا ۰ و ۱ مورد استفاده قرار می‌گیرد.

object: این نوع داده بر اساس مقداری که برابر آن قرار می‌گیرد نوع عددی، رشته‌ای یا باینری را می‌تواند در خود ذخیره کند. به عبارتی نوع داده object تمام مقادیر و عبارتها را می‌تواند در خود ذخیره کند.

نوع داده‌ی ثابت یا :Constantبرای تعریف یک نوع داده‌ی ثابت که تنها یک مقدار را به خود اختصاص می‌دهد کافی‌ست عبارت const را در پشت نام ثابت قرار دهید :



Const int s=10 ;

به متد ()WriteLine توجه کنید.
این متد دو آرگومان قبول میکند. آرگومانها اطالعاتی هستند که متد با استفاده از آنها کاری انجام میدهد. آرگومانها به وسیله کاما از هم جدا میشوند. آرگومان اول، یک رشته قالب بندی شده است و آرگومان دوم مقداری است که توسط رشته قالب بندی شده مورد استفاده قرار میگیرد.

Console.WriteLine("num = {0}", num);
Console.WriteLine("bool = {0}", bool);
Console.WriteLine("myChar = {0}", myChar);

اگر به دقت نگاه کنید رشته قالب بندی شده دارای عدد صفری است که در داخل دو آکوالد محصور شده است. البته عدد داخل دو آکوالد میتواند از صفر تا n باشد.
به این اعداد جانگهدار (Placeholder) میگویند.
این اعداد بوسیله مقدار آرگومان بعد جایگزین میشوند. به عنوان مثال جانگهدار {0} به این معناست که اولین آرگومان بعد از رشته قالب بندی شده در آن قرار میگیرد.
در مثال زیر ازسه جا نگهدار استفاده شده است:

Console.WriteLine("The values are {0}, {1}, {2}, .", value1, value2, value3);

جا نگهدارها از صفر شروع میشوند. تعداد جانگهدارها باید با تعداد آرگومانهای بعد از رشته قالب بندی شده برابر باشد. برای مثال اگر شما سه جا نگهدار مثل بالا داشته باشید باید سه مقدار هم برای آنها بعد از رشته قالب بندی شده در نظر بگیرید. اولین جا نگهدار با دومین آرگومان و دومین جا نگهدار با سومین آرگومان جایگزین میشود.

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
انیتا

گرفتن ورودی از کاربر:
متد ()ReadLine فقط مقدار رشتهای را که توسط کاربر نوشته میشود را بر میگرداند. همانطور که از نام این متد پیداست، تمام کاراکترهایی را که شما در محیط کنسول تایپ میکنید تا زمانی که دکمه Enter را میزنید میخواند. هر چه که در محیط کنسول تایپ میشود از نوع رشته است. برای تبدیل نوع رشته به انواع دیگر میتوانید از کلاس Convert و متدهای آن استفاده کنید.



using System;
public class Program
{
public static void Main()
{
string name;
int age;
double height;
Console.Write("name: ");
name = Console.ReadLine();
Console.Write("age: ");
age = Convert.ToInt32(Console.ReadLine());
Console.Write(" height: ");
height = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("Name is {0}.", name);
Console.WriteLine("Age is {0}.", age);
Console.WriteLine("Height is {0}.", height);
}
}

ابتدا متغیرها را برای ذخیره داده در برنامه تعریف میکنیم
شما به عنوان کاربر نام خود را وارد میکنید. مقدار متغیر نام، برابر مقداری است که توسط متد ()ReadLine خوانده میشود.
از آنجاییکه نام از نوع رشته است و مقداری که از متد ()ReadLine خوانده میشود هم از نوع رشته است در نتیجه نیازی به تبدیل انواع نداریم.
سن، متغیری از نوع صحیح ((int است، پس نیاز است که ما تبدیل از نوع رشته به
صحیح را انجام دهیم. بنابراین از کلاس و متد ()ToInt32.Convert برای این تبدیل استفاده میکنیم .مقدار بازگشتی از این متد در متغیر سن قرار میگیرد.
علاوه بر آنچه گفته شد شما میتوانید از متد ()Parse برای تبدیلهای باال استفاده کنید، مانند:

age = int.Parse(Console.ReadLine());
height = double.Parse(Console.ReadLine());

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
انیتا

ساختارهای تصمیم:

دستور if :
دستور if ساده ترین دستور شرطی است که برنامه میگوید اگر شرطی برقرار است، کد معینی را انجام بده.
قبل از اجرای دستور if ابتدا شرط بررسی میشود. اگر شرط برقرار باشد یعنی درست باشد سپس کد اجرا میشود. شرط یک عبارت مقایسهای است. میتوان از عملگرهای مقایسهای برای تست درست یا اشتباه بودن شرط استفاده کرد. اجازه بدهید که نگاهی به نحوه استفاده از دستور if در داخل برنامه بیندازیم.
در این مثال شرط حلقه این است که باید متغیر مورد نظر کمتر از 13 باشد تا حلقه اجرا شود در غیر این صورت دستور بعدی اجرا میشود.



using System;

namespace DecisionMaking {
   class Program {
      static void Main(string[] args) {
         /* local variable definition */
         int a = 10;
      
         /* check the boolean condition using if statement */
         if (a < 13) {
            /* if condition is true then print the following */
            Console.WriteLine("a is less than 13");
         }
         Console.WriteLine("value of a is : {0}", a);
         Console.ReadLine();
      }
   }
}

دستور if...else :
زمانی که شما بخواهید شرط خاصی برقرار شد یک دستور و اگر برقرار نبود دستور دیگر اجرا شود باید از دستور else…if استفاده کنید.
از کلمه کلیدی else نمیتوان به تنهایی استفاده کرد حتما باید با if به کار برده شود.
اگر فقط یک کد اجرایی در داخل بدنه if و بدنه else دارید استفاده از آکوالد اختیاری است. کد داخل بلوک else فقط در صورتی اجرا میشود که شرط داخل دستور if نادرست باشد. در زیر نحوه استفاده از دستور else…if آمده است.



using System;

namespace DecisionMaking {
   class Program {
      static void Main(string[] args) {
         /* local variable definition */
         int a = 100;
      
         /* check the boolean condition */
         if (a < 20) {
            /* if condition is true then print the following */
            Console.WriteLine("a is less than 20");
         } else {
            /* if condition is false then print the following */
            Console.WriteLine("a is not less than 20");
         }
         Console.WriteLine("value of a is : {0}", a);
         Console.ReadLine();
      }
   }
}

خروجی آن :

a is not less than 20;
value of a is : 100

دستور Switch :
switch به شما اجازه میدهد که با توجه به مقدار ثابت یک متغیر چندین انتخاب داشته باشید. دستور switch معادل دستور if تو در تو است با این تفاوت که در دستور switch متغیر فقط مقادیر ثابتی از اعداد، رشته ها و یا کاراکترها را قبول میکند. مقادیر ثابت مقادیری هستند که قابل تغییر نیستند. در زیر نحوه استفاده از دستور switch آمده است:



using System;

namespace DecisionMaking {
   class Program {
      static void Main(string[] args) {
         /* local variable definition */
         char grade = 'B';
      
         switch (grade) {
            case 'A':
               Console.WriteLine("Excellent!");
               break;
            case 'B':
               Console.WriteLine("Well done");
               break;
            case 'D':
               Console.WriteLine("You passed");
               break;
            case 'F':
               Console.WriteLine("Better try again");
               break;
               default:
            Console.WriteLine("Invalid grade");
               break;
         }
         Console.WriteLine("Your grade is  {0}", grade);
         Console.ReadLine();
      }
   }
}

و خروجی آن :

Well done
Your grade is B

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
انیتا

حلقه ها:
حلقه while :
ابتدایی ترین ساختار تکرار در سی شارپ حلقه While است. ابتدا یک شرط را مورد بررسی قرار میدهد و تا زمانیکه شرط برقرار باشد کدهای درون بلوک اجرا میشوند.
ساختار while مانند ساختار if بسیار ساده است. ابتدا یک شرط را که نتیجه آن یک مقدار بولی است مینویسیم اگر نتیجه درست یا true باشد سپس کدهای داخل بلوک while اجرا میشوند. اگر شرط غلط یا false باشد وقتی که برنامه به حلقه while برسد هیچکدام از کدها را اجرا نمیکند. برای متوقف شدن حلقه باید مقادیر داخل حلقه while اصلاح شوند. به یک متغیر شمارنده در داخل بدنه حلقه نیاز داریم. این شمارنده برای آزمایش شرط مورد استفاده قرار میگیرد و ادامه یا توقف حلقه به نوعی به آن وابسته است. این شمارنده را در داخل بدنه باید کاهش یا افزایش دهیم. در برنامه زیر نحوه استفاده از حلقه while آمده است:



using System;

namespace Loops {
   class Program {
      static void Main(string[] args) {
         /* local variable definition */
         int a = 10;

         /* while loop execution */
         while (a < 20) {
            Console.WriteLine("value of a: {0}", a);
            a++;
         }
         Console.ReadLine();
      }
   }
}

و خروجی :

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

حلقه do while :
حلقه while do یکی دیگر از ساختارهای تکرار است. این حلقه بسیار شبیه حلقه while است با این تفاوت که در این حلقه ابتدا کد اجرا میشود و سپس شرط مورد بررسی قرار میگیرد. یکی از موارد برتری استفاده از حلقه while do نسبت به حلقه while زمانی است که شما بخواهید اطلاعاتی از کاربر دریافت کنید. به مثال زیر توجه کنید:



using System;

namespace Loops {
   class Program {
      static void Main(string[] args) {
         /* local variable definition */
         int a = 10;
        
         /* do loop execution */
         do {
            Console.WriteLine("value of a: {0}", a);
            a = a + 1;
         }
         while (a < 20);
         Console.ReadLine();
      }
   }
}

و خروجی :

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

حلقه for :
یکی دیگر از ساختارهای تکرار حلقه for است. این حلقه عملی شبیه به حلقه while انجام میدهد و فقط دارای چند خصوصیت اضافی است.



using System;

namespace Loops {
   class Program {
      static void Main(string[] args) {
        
         /* for loop execution */
         for (int a = 10; a < 20; a = a + 1) {
            Console.WriteLine("value of a: {0}", a);
         }
         Console.ReadLine();
      }
   }
}

خروجی :

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

حلقه های تو در تو :
سی شارپ به شما اجازه میدهد که از حلقه ها به صورت تو در تو استفاده کنید. اگر یک حلقه در داخل حلقه دیگر قرار بگیرد، به آن حلقه تو در تو گفته میشود. در این نوع حلقه ها، به ازای اجرای یک بار حلقه بیرونی، حلقه داخلی به طور کامل اجرا میشود. در زیر نحوه ایجاد حلقه تو در تو آمده است :



using System;

namespace Loops {
   class Program {
      static void Main(string[] args) {
         /* local variable definition */
         int i, j;
        
         for (i = 2; i < 100; i++) {
            for (j = 2; j <= (i / j); j++)
            if ((i % j) == 0) break; // if factor found, not prime
            if (j > (i / j)) Console.WriteLine("{0} is prime", i);
         }
         Console.ReadLine();
      }
   }
}

و نتیجه ان :

2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
29 is prime
31 is prime
37 is prime
41 is prime
43 is prime
47 is prime
53 is prime
59 is prime
61 is prime
67 is prime
71 is prime
73 is prime
79 is prime
83 is prime
89 is prime
97 is prime

خارج شدن از حلقه با استفاده از break و continue :
گاهی اوقات با وجود درست بودن شرط میخواهیم حلقه متوقف شود. با استفاده از کلمه کلیدی break حلقه را متوقف کرده و با استفاده از کلمه کلیدی continue میتوان بخشی از حلقه را رد کرد و به مرحله بعد رفت. برنامه زیر نحوه استفاده از continue و break را نشان میدهد:



using System;
namespace BreakContinueDemo
{
 public class Program
 {
 public static void Main()
 {
 Console.WriteLine("Demonstrating the use of break.\n");
 for (int x = 1; x < 10; x++)
 {
 if (x == 5)
 break;
 Console.WriteLine("Number " + x);
 }
 Console.WriteLine("\nDemonstrating the use of continue.\n");
 for (int x = 1; x < 10; x++)
 {
 if (x == 5)
 continue;
 Console.WriteLine("Number " + x);
 }
 }
 }
}

خروجی:

Demonstrating the use of break.
Number 1
Number 2
Number 3
Number 4
Demonstrating the use of continue.
Number 1
Number 2
Number 3
Number 4
Number 6
Number 7
Number 8
Number 9

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
انیتا

آرایه ها

آرایه نوعی متغیر است که لیستی از آدرسهای مجموعهای از دادههای هم نوع را در خود ذخیره میکند. تعریف چندین متغیر از یک نوع برای هدفی یکسان بسیار خسته کننده است. مثال اگر بخواهید صد متغیر از نوع اعداد صحیح تعریف کرده و از آنها استفاده کنید. مط مئنا تعریف این همه متغیر بسیار کسالت آور و خسته کننده است. اما با استفاده از آرایه میتوان همه آنها را در یک خط تعریف کرد. در زیر راهی ساده برای تعریف یک آرایه نشان داده شده است:

datatype[] arrayName = new datatype[length];

Datatype نوع دادههایی را نشان میدهد که آرایه در خود ذخیره میکند. کروشه که بعد از نوع داده قرار میگیرد و نشان دهنده استفاده از آرایه است. arrayName که نام آرایه را نشان میدهد. هنگام نامگذاری آرایه بهتر است که نام آرایه نشان دهنده نوع آرایه باشد. به عنوان مثال برای نامگذاری آرایه هایی که اعداد را در خود ذخیره میکند از کلمه number استفاده کنید. طول آرایه که به کامپایلر میگوید شما قصد دارید چه تعداد داده یا مقدار را در آرایه ذخیره کنید. از کلمه کلیدی new هم برای اختصاص فضای حافظه به اندازه طول آرایه استفاده میشود. برای تعریف یک آرایه که 0 مقدار از نوع اعداد صحیح در خود ذخیره میکند باید به صورت زیر عمل کنیم:

int[] numbers = new int[13];

یکی دیگر از راههای تعریف سریع و مقدار دهی یک آرایه به صورت زیر است:

datatype[] arrayName = new datatype[length] { val1, val2, ... valN };

که به صورت زیر است :

int[] numbers = new int[3] { 1, 2, 3 };

اگر تعداد مقادیری که در آرایه قرار میدهیم کمتر یا بیشتر از طول آرایه باشد با خطا مواجه میشویم. یکی دیگر از راههای تعریف آرایه در زیر آمده است. شما میتوانید هر تعداد عنصر را که خواستید در آرایه قرار دهید بدون اینکه اندازه آرایه را مشخص کنید. به عنوان مثال:

int[] numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

یک راه بسیار سادهتر برای تعریف آرایه به صورت زیر است:

int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

 

 

دستیابی به مقادیر آرایه با استفاده از حلقه 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;

         /* initialize elements of array n */
         for ( i = 0; i < 10; i++ ) {
            n[ i ] = i + 100;
         }
         
         /* output each array element's value */
         for (j = 0; j < 10; j++ ) {
            Console.WriteLine("Element[{0}] = {1}", j, n[j]);
         }
         Console.ReadKey();
      }
   }
}

و خروجی ان :

 

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:

حلقه foreach یکی دیگر از ساختارهای تکرار در سی شارپ میباشد  . و با هر بار گردش در بین اجزاء، مقادیر هر یک از آنها را در داخل یک متغیر موقتی قرار میدهد و شما میتوانید بواسطه این متغیر به مقادیر دسترسی پیدا کنید

using System;
public class Program
{
 public static void Main()
 {
 int[] numbers = { 1, 2, 3, 4, 5 };
 foreach (int n in numbers)
 {
 Console.WriteLine("Number {0}", n);
 }
 }
}

 

و خروجی :

Number 1
Number 2
Number 3
Number 4
Number 5

 

 

آرایه های چند بعدی :

دوبعدی :

two_dimensional_arrays.jpg.4f571ac6d9f602b12e590059ad6fe3af.jpg

آرایههای چند بعدی آرایههایی هستند که برای دسترسی به هر یک از عناصر آنها باید از چندین اندیس استفاده کنیم. یک آرایه چند بعدی را میتوان مانند یک جدول با تعدادی ستون و ردیف تصور کنید. با افزایش اندیسها اندازه ابعاد آرایه نیز افزایش مییابد و آرایههای چند بعدی با بیش از دو اندیس به وجود میآیند. نحوه ایجاد یک آرایه با دو بعد به صورت زیر است:

datatype[,] arrayName = new datatype[lengthX, lengthY];

 

و یک آرایه سه بعدی به صورت زیر ایجاد میشود:

datatype[, ,] arrayName = new datatype[lengthX, lengthY, lengthZ];

مثال :

using System;
public class Program
{
 public static void Main()
 {
 int[,] numbers = { { 1, 2, 3, 4, 5 },
 { 6, 7, 8, 9, 10 },
 { 11, 12, 13, 14, 15 }
 };
 foreach (int number in numbers)
 {
 Console.Write(number + " ");
 }
 }
}

خروجی ان :

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

یه مثال دیگر از ارایه دو بعدی :

using System;

namespace ArrayApplication {
   class MyArray {
      static void Main(string[] args) {
         /* an array with 5 rows and 2 columns*/
         int[,] a = new int[5, 2] {{0,0}, {1,2}, {2,4}, {3,6}, {4,8} };
         int i, j;
         
         /* output each array element's value */
         for (i = 0; i < 5; i++) {
            
            for (j = 0; j < 2; j++) {
               Console.WriteLine("a[{0},{1}] = {2}", i, j, a[i,j]);
            }
         }
         Console.ReadKey();
      }
   }
}
a[0,0]: 0
a[0,1]: 0
a[1,0]: 1
a[1,1]: 2
a[2,0]: 2
a[2,1]: 4
a[3,0]: 3
a[3,1]: 6
a[4,0]: 4
a[4,1]: 8

آرایه های دندانه دار:

آرایه های دندانه دار نوعی از آرایه های چند بعدی هستند که شامل ردیف هایی با تعداد ستونهای مختلف هست . آرایه چند بعدی ساده، آرایهای به شکل مستطیل است، چون تعداد ستونهای آن یکسان است ولی آرایه دندانه دار دارای سطرهایی با تعداد ستون های متفاوت است. بنابراین میتوان یک آرایه دندانه دار را آرایه های از آرایه ها فرض کرد. در زیر نحوه تعریف آرایه های چند بعدی آمده است.

int[][] myArrays = new int[3][];
myArrays[0] = new int[3];
myArrays[1] = new int[5];
myArrays[2] = new int[2];
using System;

namespace ArrayApplication {
   class MyArray {
      static void Main(string[] args) {
         
         /* a jagged array of 5 array of integers*/
         int[][] a = new int[][]{new int[]{0,0},new int[]{1,2},
            new int[]{2,4},new int[]{ 3, 6 }, new int[]{ 4, 8 } };
         int i, j;
         
         /* output each array element's value */
         for (i = 0; i < 5; i++) {
            for (j = 0; j < 2; j++) {
               Console.WriteLine("a[{0}][{1}] = {2}", i, j, a[i][j]);
            }
         }
         Console.ReadKey();
      }
   }
}
a[0][0]: 0
a[0][1]: 0
a[1][0]: 1
a[1][1]: 2
a[2][0]: 2
a[2][1]: 4
a[3][0]: 3
a[3][1]: 6
a[4][0]: 4
a[4][1]: 8

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

×
×
  • جدید...