<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های یونس ابراهیمی</title><link>https://virgool.ir/feed/@younes.ebrahimi.1391</link><description>سایت w3-farsi.com</description><language>fa</language><pubDate>2026-11-11 10:59:58</pubDate><image><url>https://files.virgool.ir/upload/users/209591/avatar/avatar.png</url><title>یونس ابراهیمی</title><link>https://virgool.ir/@younes.ebrahimi.1391</link></image><item><title>دستورات try و catch</title><link>https://virgool.ir/@younes.ebrahimi.1391/دستورات-try-و-catch-mmpkwhriev2n</link><description>می‌توان خطاها را با استفاده از دستور try…catch اداره کرد. بدین صورت که کدی را که احتمال می‌دهید ایجاد خطا کند در داخل بلوک try قرار می‌دهید. بلوک catch هم شامل کدهایی است که وقتی اجرا می‌شوند که برنامه با خطا مواجه شود. تعریف ساده‌ی این دو بلوک به این صورت است که بلوک try سعی می‌کند که دستورات را اجرا کند و اگر در بین دستورات خطایی وجود داشته باشد برنامه دستورات مربوط به بخش catch را اجرا می‌کند. برنامه زیر نحوه استفاده از دستور try…catch را نمایش می‌دهد : using System;                                                            &#xA;                                                                          &#xA; public class Program                                                     &#xA; {                                                                        &#xA;     public static void Main()                                            &#xA;     {                                                                    &#xA;         int result;                                                      &#xA;         int x = 5;                                                       &#xA;         int y = 0;                                                       &#xA;                                                                          &#xA;         try                                                              &#xA;         {                                                                &#xA;             result = x / y; //ERROR                                      &#xA;         }                                                                &#xA;         catch                                                            &#xA;         {                                                                &#xA;             Console.WriteLine(&#34;An attempt to divide by 0 was detected.&#34;);&#xA;         }                                                                &#xA;                                                                          &#xA;      }                                                                    &#xA;}An attempt to divide by 0 was detected.در داخل بلوک try، مقدار x را که 5 است بر y که مقدار آن 0 است تقسیم کرده‌ایم. نتیجه محاسبه به وجود آمدن خطای DivideByZeroException (عدد تقسیم بر صفر) است. از آنجاییکه در برنامه بالا خطایی به وجود آمده است کدهای داخل بلوک catch اجرا می‌شوند. بنابراین :try&#xA;{&#xA;    result = x / y; //Error: Jump to catch block&#xA;    Console.WriteLine(&#34;This line will not be executed.&#34;);&#xA;}&#xA;catch&#xA;{&#xA;    Console.WriteLine(&#34;An attempt to divide by 0 was detected.&#34;);&#xA;}می‌توانید از یک نوع استثناء مخصوص به یک خطا در داخل بلوک catch استفاده کنید، مثلاً برای خطای تقسیم عدد بر صفر از DivideByZeroException به شکل زیر استفاده کنید :try&#xA;{&#xA;    result = x / y; //ERROR&#xA;}&#xA;catch (DivideByZeroException)&#xA;{&#xA;    Console.WriteLine(&#34;An attempt to divide by 0 was detected.&#34;);&#xA;}همچنین می‌توانید اطلاعات مربوط به یک استثنا را در داخل یک متغیر قرار داده و سپس آن را نمایش دهید:try&#xA;{&#xA;    result = x / y; //ERROR&#xA;}&#xA;catch (DivideByZeroException error)&#xA;{&#xA;    Console.WriteLine(error.Message);&#xA;}Attempted to divide by zero.در کد بالا یک نمونه از کلاس DivideByZeroException را ایجاد کرده‌ایم  (error). این کلاس دارای یک خاصیت به نام Message است که از آن برای نمایش  اطلاعاتی در مورد استثناء استفاده می‌کنیم. همه کلاسهای استثناء توضیحاتی  در مورد خطاها می‌دهند. در درسهای آینده در مورد خصوصیات استثناءها بیشتر  توضیح می‌دهیم. اگر فکر می‌کنید که در بلوک try ممکن است با چندین خطا مواجه شوید می‌توانید از چندین بلوک catch استفاده نمایید ولی به یاد داشته باشید که برای هر کدام از آن خطاها از کلاس استثناء مربوط به هر یک استفاده کنید.int result;&#xA;int x = 5;&#xA;int y;&#xA;&#xA;try&#xA;{&#xA;    y = Int32.Parse(Console.ReadLine());&#xA;    result = x / y;&#xA;}&#xA;catch (DivideByZeroException error)&#xA;{&#xA;    Console.WriteLine(error.Message);&#xA;}&#xA;catch (FormatException error)&#xA;{&#xA;    Console.WriteLine(error.Message);&#xA;}از انجاییکه مقدار y به وسیله ورودی که از کاربر گرفته می‌شود، تعیین  می‌شود، مقدار آن باید با توجه به مثال بالا غیر صفر باشد (عدد تقسیم بر  صفر تعریف نشده است). اما یک مشکل وجود دارد. چون ممکن است که کاربر یک  مقدار غیر عددی وارد کند (مثلاً یک حرف) که در این صورت برنامه نمی‌تواند  حرف را به عدد تبدیل کند و خطای نوع (FormatException) اتفاق می افتد. وقتی استثناء اتفاق افتاد بلوک catch مربوط به این خطا اجرا می‌شود و محاسبه خارج قسمت تقسیم x بر y نادیده گرفته می‌شود. حال فرض کنید شما می‌خواهید تمام خطاهای احتمالی که ممکن است در داخل بلوک try اتفاق می افتند را فهمیده و اداره کنید این کار چگونه امکانپذیر است؟ به راحتی و با استفاده از کلاس عمومی Exception می‌توانید این کار را انجام داد. هر کلاس استثناء در دات نت از این کلاس  ارث بری می‌کند بنابراین شما می‌توانید هر نوع استثناءیی را در شئی از کلاس  Exception ذخیره نمایید.try&#xA;{&#xA;    //Put your codes to test here&#xA;}&#xA;catch (Exception error)&#xA;{&#xA;    Console.WriteLine(error.Message);&#xA;}با استفاده از این روش دیگر لازم نیست نگران اتفاق خطاهای احتمالی باشید چون بلوک catch برای هر گونه خطایی که در داخل بلوک try تشخیص داده شود پیغام مناسبی نشان می‌دهد. به این نکته توجه کنید که اگر بخواهید از کلاس پایه Exception همراه با سایر کلاسهای استثناء دیگر که از آن مشتق می‌شوند در برنامه استفاده کنید باید کلاس پایه Exception در آخرین بلوک catch قرار گیرد.try&#xA;{&#xA;    //Put your codes to test here&#xA;}&#xA;catch (DivideByZeroException)&#xA;{&#xA;    Console.WriteLine(&#34;Division by zero is not allowed.&#34;);&#xA;}&#xA;catch (FormatException)&#xA;{&#xA;    Console.WriteLine(&#34;Error on converting the data to proper type.&#34;);&#xA;}&#xA;catch (Exception)&#xA;{&#xA;    Console.WriteLine(&#34;An error occured.&#34;);&#xA;}اگر کلاس پایه Exception را در اولین بلوک catch قرار دهیم و خطایی در برنامه رخ دهد چون تمام کلاسهای استثناء از این کلاس مشتق می‌شوند در نتیجه اولین بلوک catch اجرا شده و سایر بلوک‌ها حتی با وجود اینکه خطای مورد نظر به آنها مربوط  باشد اجرا نمی‌شوند. شما می‌توانید از عمگر is نیز به صورت زیر استفاده  نمایید.try&#xA;{&#xA;&#xA;}&#xA;catch(Exception error)&#xA;{&#xA;    if (error is DivideByZeroException)&#xA;    {&#xA;        Console.WriteLine(&#34;Cannot divide by zero!&#34;);&#xA;    }&#xA;    if (error is FormatException)&#xA;    {&#xA;        Console.WriteLine(&#34;Format cannot be accepted!&#34;);&#xA;    }&#xA;}بلوک catch از کلاس Exception برای به دام انداختن همه استثناءهایی که به وسیله برنامه به وجود می‌آید استفاده می‌کند. در داخل بلوک catch می‌توانید با استفاده از یک دستور if و کلمه کلیدی is نوع استثناء به وجود آمده را بیابید.مقالات به روز سی شارپ را از سایت w3-farsi.com پیگیری کنید</description><category>یونس ابراهیمی</category><author>یونس ابراهیمی</author><pubDate>Tue, 08 Sep 2020 17:28:27 +0430</pubDate></item><item><title>عبارت لامبدا</title><link>https://virgool.ir/@younes.ebrahimi.1391/عبارت-لامبدا-no7ixqzqwydi</link><description>عبارت لامبدا (Lambda expressions) در اصل یک متد بی نام است. این متد ناشناس به تنهایی قابل اجرا نیست و برای پیاده‌سازی متدی که در یک رابط  تابعی یا functional interface تعریف‌ شده به کار می‌رود. رابط تابعی،  اینترفیسی است که فقط و فقط یک متد در آن تعریف شده است. فرض کنید یک رابط  تابعی به صورت زیر داریم :interface MyMessage &#xA;{&#xA;   void ShowMessage(String message);&#xA;}یک راه برای Override کردن متد این رابط استفاده از کلاس های داخلی بی نام به صورت زیر می باشد :public class MyFirstProgram&#xA;{&#xA;    interface MyMessage&#xA;    {&#xA;        void ShowMessage(String message);&#xA;    }&#xA;&#xA;    public static void main(String[] args)&#xA;    {&#xA;        MyMessage m = new MyMessage()              &#xA;        {                                          &#xA;            @Override                              &#xA;            public void ShowMessage(String message)&#xA;            {                                      &#xA;                System.out.println(message);       &#xA;            }                                      &#xA;        };                                         &#xA;&#xA;        m.ShowMessage(&#34;Hello World!&#34;);&#xA;    }&#xA;}Hello World!ولی یک راه ساده تر هم وجود دارد و آن استفاده از عبارات لامبدا است. در  کد زیر متد ()ShowMessage با استفاده از عبارات لامبدا پیاده سازی شده است  :public class MyFirstProgram&#xA;{&#xA;    interface MyMessage&#xA;    {&#xA;        void ShowMessage(String message);&#xA;    }&#xA;&#xA;    public static void main(String[] args)&#xA;    {&#xA;        MyMessage m = (message) -&gt; System.out.println(message);&#xA;&#xA;        m.ShowMessage(&#34;Hello World!&#34;);&#xA;    }&#xA;}Hello World!روش کلی استفاده از عبارات لامبدا به صورت زیر است :parameter -&gt; expression bodyدر عبارت لامبدا ابتدا پارامترها را بدون ذکر نوعشان می نویسیم و بعد از عملگر -&gt; استفاده می کنیم. سپس دستوراتی را که قرار است اجرا شوند را می نویسیم.  نوع پارامترها به صورت خودکار به وسیله کامپایلر تشخیص داده می شود. البته  امضاء عبارات لامبدا باید شبیه به امضاء متد باشد. عبارات لامبدا دارای  اشکال زیادی هستند. به عنوان مثال در مثال بالا از یک عبارت لامبدایی  استفاده کرده ایم که دارای یک دستور ساده اجرایی است. اگر متد شما برای  عبارت لامبدا هیچ پارامتری نداشته باشد، همه کاری که لازم است نجام دهید  این است که هیچ پارامتری در داخل عبارت لامبدا قرار ندهید :public class MyFirstProgram&#xA;{&#xA;    interface MyMessage&#xA;    {&#xA;        void ShowMessage();&#xA;    }&#xA;&#xA;    public static void main(String[] args)&#xA;    {&#xA;        MyMessage m = () -&gt; System.out.println(&#34;Hello World!&#34;);&#xA;&#xA;        m.ShowMessage();&#xA;    }&#xA;}Hello World!به این نکته توجه کنید که شما می توانید نوع پارامترهای عبارت لامبدا را نشان دهید.public class MyFirstProgram&#xA;{&#xA;    interface MyMessage&#xA;    {&#xA;        void ShowMessage(String message);&#xA;    }&#xA;&#xA;    public static void main(String[] args)&#xA;    {&#xA;        MyMessage m = (String message) -&gt; System.out.println(message);&#xA;&#xA;        m.ShowMessage(&#34;Hello World!&#34;);&#xA;    }&#xA;}Hello World!اگر عبارات لامبدای شما دارای چندین دستور اجرایی باشند می توانید آنها  را داخل آکولاد قرار دهید. به عبارت لامبدایی که دارای آکولاد باشد بلاک  لامبدا می گویند.public class MyFirstProgram&#xA;{&#xA;    interface MyMessage&#xA;    {&#xA;        void ShowMessage(String message);&#xA;    }&#xA;&#xA;    public static void main(String[] args)&#xA;    {&#xA;        MyMessage m = (message) -&gt;                  &#xA;        {                                           &#xA;            System.out.println(message);            &#xA;            System.out.println(&#34;Some more message&#34;);&#xA;        };                                          &#xA;&#xA;        m.ShowMessage(&#34;Hello World!&#34;);&#xA;    }&#xA;}Hello World!&#xA;Some more messageدر زیر مثالی از یک عبارت لامبدا که دارای مقدار برگشتی است نشان داده شده است :SampleInterface GetSquare = (number) -&gt; { return (number * number); };به این نکته توجه کنید که هنگام استفاده از دستور return باید همیشه از  دستورات لامبدایی استفاده کنید که دارای آکولاد می باشند. اگر یک عبارت  لامبدا فقط دارای یک دستور return ساده باشد می توانید به سادگی آن را به  expression lambda تبدیل کنید.SampleInterface GetSquare = (number) -&gt; (number * number);به این نکته توجه کنید که استفاده از پرانتز در کد بالا برای فهم بهتر  آن است. اگر یک عبارت لامبدا دارای یک پارامتر ساده و یک دستور return است،  می توانید برای سادگی بیشتر پرانتزها را حذف نمایید:SampleInterface GetSquare = (number) -&gt; number * number;عبارت لامبدای بالا دارای دو پارامتر است و حاصل جمع آنها را بر می گرداند.برای تسلط کامل بر این مفهوم به این لینک مراجعه کنید</description><category>یونس ابراهیمی</category><author>یونس ابراهیمی</author><pubDate>Wed, 02 Sep 2020 12:52:34 +0430</pubDate></item><item><title>JVM چیست ؟</title><link>https://virgool.ir/@younes.ebrahimi.1391/jvm-چیست-cccdannniuui</link><description>برای اجرای برنامه‌های نوشته شده و کامپایل شده  به زبان جاوا نیاز به سکویی یا برنامه‌ای است که به آن ماشین مجازی جاوا  (Java Virtual Machine) یا به اختصار JVM گفته می‌شود. این ماشین کدهای  کامپایل شده به زبان جاوا را گرفته و آنها را اجرا می‌کند. شاید این جمله  را شنیده باشید که کدهای زبان جاوا بر روی هر ماشین قابل اجرا می‌باشند و  اصطلاحا جاوا Multi Platform است. شخصی که دستگاهی با سیستم عامل ویندوز  دارد، از سایت سان میکروسیستمز JVM مربوط به سیستم عامل ویندوز را نصب  می‌کند. سپس برنامه‌ای را به زبان جاوا می‌نویسد و آن را کامپایل می نماید.  پس از آن برنامه کامپایل شده را برای دوست خود که دستگاه دیگری با سیستم  عامل لینوکس دارد ارسال می‌کند. این شخص قبلا JVM مخصوص سیستم عامل لینوکس  را از سایت سان برداشته و بر روی دستگاه خود نصب نموده است. به همین دلیل  هیچکدام از این دو نفر لازم نیست نگران باشد که سیستم عامل دستگاهایشان با  یکدیگر متفاوت است. می توان نحوه اجرای کدهای جاوا را به صورت زیر خلاصه  کرد :همانطور که در شکل بالا مشاهده می کنید :برنامه‌نویس کدهای خود را درون فایلی با پسوند java. می‌نویسید.وقتی برنامه نویس برنامه خود را اجرا می کند، کدهای برنامه توسط  کامپایلر جاوا به bytecode تبدیل می‌شوند و درون فایلی با همان نام قبلی  اما این بار با پسوند class. ذخیره می‌شوند.ماشین مجازی جاوا (Java Virtual Machine) فایل class. را اجرا می‌کند.ماشین مجازی جاوا یا JVM بر روی تمام سیستم‌عامل‌های مطرح (ویندوز،  مکینتاش و لینوکس) قابل نصب است. به همین دلیل فایل class. برنامه شما در  تمام این سیستم عامل‌ها می‌تواند اجرا شود و به همین دلیل است که به جاوا  زبان مستقل از سیستم عامل گفته می‌شود.برای مطالعه مطالب جدید جاوا به وب سایت w3-farsi.com مراجعه فرمایید</description><category>یونس ابراهیمی</category><author>یونس ابراهیمی</author><pubDate>Wed, 02 Sep 2020 12:34:23 +0430</pubDate></item><item><title>جاوا چیست؟</title><link>https://virgool.ir/coderlife/جاوا-چیست-xe0imrmpw3yo</link><description>جاوا (JAVA) یک زبان برنامه نویسی شیءگراست که نخستین بار توسط James Gosling (جیمز گاسلینگ) در شرکت Sun Microsystems ایجاد گردید. در سال 1990 شرکت Sun Microsystems در حال توسعه نرم‌افزاری  برای استفاده ابزارهای الکترونیکی بود که مسئولیت تیم، که آن را، تیم پروژه  Green نامیدند، جیمز گاسلینگ بر عهده گرفت.در سال 1991 تیم تصمیم گرفت که زبان جدید را OAK (بلوط) بنامند. علت این  نام گذاری وجود درختان بلوط در محوطه اطراف ساختمان محل کار اعضای تیم  Green  بود. در سال 1992 تیم پروژه Green زبان جدیدی را معرفی کرد که با  ابزارهای مختلف خانگی و لمسی کار می‌کرد. در سال 1993 وب جهانی توسعه یافت و  زبان OAK با معرفی Applet که قابلیت‌های زیادی به کامپیوترهای متصل به وب  می‌افزود، مشهور شد.در سال 1995 زبان OAK به JAVA تغییر نام پیدا کرد و توسط Microsoft و  Netscape پشتیبانی شد. از آنجا که مراسم تغییر نام در کافی شاپ برگزار شده  بود و همچنین علاقه اعضای تیم Green به قهوه، یک فنجان قهوه داغ به عنوان  نماد جاوا در نظر گرفته شد. معتبر‌ترین داستان درباره دلیل این نامگذاری  این است که، جیمز گاسلینگ به نوعی قهوه علاقه داشت، که در جزیره‌ای به نام  جاوا، که در اندونزی در جنوب شرقی آسیا است، می‌روید. کلاً زبان برنامه  نویسی جاوا به سه دسته کلی تقسیم می‌شود :JAVA SE یا JAVA Standard Edition برای نوشتن برنامه‌های کوچک دسکتاپی کاربرد دارد.JAVA ME یا JAVA Micro Edition برای برنامه نویسی برای منابع سخت افزاری (CPU ،MEMORY) محدود، مثل موبایل و لوازم خانگی کاربرد دارد.JAVA EE یا JAVA Enterprised Edition برای برنامه‌های بزرگ که معمولاً  بر روی شبکه‌های بزرگ مخصوصاً اینترنت نصب و اجرا می‌شوند کاربرد دارد.تاریخچه جاوااز زمان انتشار اولین نسخه جاوا (java 1.0) تا به امروز، شرکت Sun  تقریباً هر دو سال یکبار نسخه‌ای جدیدی از این زبان را منتشر می‌نماید. در  این نسخه تازه، معمولاً قابلیت‌های جدیدی افزوده شده و ایرادهای نسخه قبل  رفع می‌شوند. نکته قابل توجه در مورد شماره گذاری نسخه‌های مختلف جاوا آن  است که تا چهارمین نسخه آن شماره گذاری بصورت Java 1.x بود که x همان شماره  نسخه مورد نظر می‌باشد. از نسخه پنجم به بعد شماره گذاری بصورت Java x  تغییر یافت. یعنی بجای اینکه نسخه پنجم را بصورت Java 1.5 نامگذاری کنند،  بصورت java 5.0 نامگذاری کردند. در ادامه به معرفی نسخه‌های مختلف جاوا بر  اساس نسخه پایه‌ای آن یا همان نسخه استاندارد (Standard Edition(SE))  می‌پردازیم. این نسخه شامل همه ملزومات مورد نیاز جهت Desktop Programming  می‌باشد.ضریب اطمینان عملکرد برنامه‌های نوشته‌ شده به این زبان بالا است و  وابسته به سیستم‌ عامل خاصی نیست، به عبارت دیگر می‌توان آن را روی هر  رایانه با هر نوع سیستم‌ عاملی اجرا کرد و این، همان شعار جاوا است: “یک  بار بنویس، همه جا اجرا کن”.برای مطالعه مطالب بروز و جدید جاوا به وب سایت w3-farsi.com مراجعه فرمایید.</description><category>یونس ابراهیمی</category><author>یونس ابراهیمی</author><pubDate>Wed, 02 Sep 2020 12:30:54 +0430</pubDate></item><item><title>GO چیست</title><link>https://virgool.ir/coderlife/go-چیست-lplmxxdgtoqj</link><description>زبان برنامه نویسی گولنگزبان برنامه نویسی Go که به گولنگ یا Golang معروف می‌باشد، یک زبان  برنامه نویسی است که در سال 2009 توسط Ken Thompson و Rob Pike و Robert  Griesemer در شرکت گوگل ابداع و به صورت متن باز منتشر شد.علاوه بر گوگل، شرکت‌های بزرگی مانند YouTube ،BBC ،SoundCloud و غیره از این زبان برای طراحی سیستم‌های Back-end استفاده می‌کنند.می‌توان گفت که Go با ظرافت فراوان قدرت و سرعت زبانی مثل C را با سهولت  و سادگی زبانی مثل Python ترکیب کرده. به همین دلیل قادر است طیف بسیار  وسیعی از برنامه‌ها را پوشش دهد، از برنامه‌های سیستمی گرفته تا برنامه‌های  ساده چند خطی.Go زبانی است از خانواده C و به همین دلیل برنامه نویسانی که با C++ ،C  ،Java ،C#، PHP ،JavaScript و … آشنایی دارند، بسیار راحت این زبان را یاد  خواهند گرفت.Go یک زبان برنامه‌نویسی همه منظوره با امکانات پیشرفته و دستور زبان  شفاف می‌باشد. بخاطر پشتیبانی از گستره بسیاری از پلتفرم‌ها، کتابخانه‌های  قدرتمند مستند سازی شده و تمرکز روی اصول مهندسی نرم‌افزار، Go یکی از  ایده‌آل ترین زبان‌ها برای یادگیری به عنوان اولین زبان برنامه‌نویسی  می‌باشد.</description><category>یونس ابراهیمی</category><author>یونس ابراهیمی</author><pubDate>Mon, 31 Aug 2020 12:58:34 +0430</pubDate></item><item><title>سی شارپ چیست؟</title><link>https://virgool.ir/@younes.ebrahimi.1391/سی-شارپ-چیست-oeyxol2l02o8</link><description>سی شارپ (#C) یک زبان برنامه‌نویسی شیء گراست، که توسط شرکت مایکروسافت ساخته شده و  ترکیبی از قابلیت‌های خوب ++C و JAVA است. اگر با این دو زبان آشنایی  دارید، این شانس را دارید که زبان #C را راحت یاد بگیرید. این زبان به قدری  راحت است که هم کسانی که قبلاً برنامه‌نویسی نکرده‌اند و هم دانش آموزان  می‌توانند راحت آن را یاد بگیرند.از سی شارپ، می‌توان برای ساخت برنامه‌های تحت ویندوز، تحت وب، وب  سرویس‌ها، برنامه‌های موبایل و بازی‌ها استفاده کرد. می‌توان به جای واژه  ویژوال سی شارپ از کلمه سی شارپ استفاده کرد، اما ویژوال سی شارپ به معنای  استفاده همزمان از سی شارپ و محیط گرافیکی ویژوال استودیو می‌باشد. این  زبان برنامه‌نویسی تنها زبانی است که مخصوصاً برای دات نت فریم ورک طراحی  شده است.سی شارپ از کتابخانه کلاس دات نت که شامل مجموعه بزرگی از اجزاء از قبل  ساخته شده است، استفاده می‌کند. این اجزاء به ساخت هر چه سریع‌تر برنامه‌ها  کمک می‌کنند. سی شارپ یک برنامه بسیار قدرتمند و شیء گرا است و با آن  می‌توان برنامه‌هایی با قابلیت مدیریت بیشتر و درک آسان ایجاد کرد. ساختار  این زبان نسبت به زبان‌های دیگر بسیار آسان و قابل فهم است.برای اجرای یک برنامه سی شارپ ابتدا باید دات‌نت فریم‌ورک نصب شود. سی شارپ یکی از زبان‌هایی است که از تکنولوژی‌های دیگر دات نت مانند، ASP.NET ،Silverlight و XNA  پشتیبانی می‌کند. همچنین یک محیط توسعه یکپارچه دارد که آن نیز به نوبه  خود دارای ابزارهای مفیدی است که به شما در کدنویسی کمک می‌کند.دلیل پیدایش این زبان بر طبق دانشنامه wikipedia بدین شرح است که:در سال 1999، شرکت Sun Microsystems اجازه استفاده از زبان برنامه‌نویسی JAVA را در اختیار Microsoft قرار داد تا در سیستم‌ عامل خود از آن استفاده کند. جاوا در اصل به هیچ  سیستم‌ عاملی وابسته نبود، ولی مایکروسافت برخی از مفاد قرارداد را زیر پا  گذاشت و قابلیت مستقل از سیستم‌ عامل بودن جاوا را از آن برداشت. شرکت Sun  Microsystems پرونده‌ای علیه مایکروسافت درست کرد و مایکروسافت مجبور شد تا  زبان شیءگرای جدیدی با کامپایلر جدید که به ++C شبیه بود را درست کند. آندرس هلزبرگ (Anders Hejlsberg) سرپرستی و مدیریت این پروژه را بر عهده گرفت و گروهی را برای طراحی زبانی  جدید تشکیل داد و نام آن را Cool گذاشت. مایکروسافت در نظر داشت، اسم این  زبان را تا آخر Cool قرار دهد، ولی به دلیل مناسب نبودن برای اهداف تجاری،  این کار را نکرد. در ارائه و معرفی رسمی چارچوب دات‌نت در سال 2000 این  زبان به سی شارپ تغییر نام یافت.برای آشنایی بیشتر با این زبان به لینک زیر مراجعه کنید:http://msdn.microsoft.com/en-us/library/z1zx9t92.aspxسی شارپ به طور دائم توسط مایکروسافت به‌روز شده و ویژگی‌های جدیدی به  آن اضافه می‌شود و یکی از بهترین زبان‌های برنامه‌نویسی دات نت است.بهترین مقالات اموزش سی شارپ را از سایت w3-farsi.com پیگیری کنید.</description><category>یونس ابراهیمی</category><author>یونس ابراهیمی</author><pubDate>Thu, 11 Jun 2020 00:09:18 +0430</pubDate></item></channel></rss>