<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های محمد شعبانی</title>
        <link>https://virgool.io/feed/@mohammadshabani</link>
        <description>ریاضی دان و برنامه نویس</description>
        <language>fa</language>
        <pubDate>2026-06-16 15:24:02</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/841359/avatar/GRD2nL.jpeg?height=120&amp;width=120</url>
            <title>محمد شعبانی</title>
            <link>https://virgool.io/@mohammadshabani</link>
        </image>

                    <item>
                <title>بررسی مبحث Constants Variables در #C - قسمت هفتم</title>
                <link>https://virgool.io/@mohammadshabani/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D9%85%D8%A8%D8%AD%D8%AB-constants-variables-%D8%AF%D8%B1-c-%D9%82%D8%B3%D9%85%D8%AA-%D9%87%D9%81%D8%AA%D9%85-wt3pwdlzqdlh</link>
                <description>سلام عرض می کنم خدمت شما دوستان عزیزم در این جلسه آموزشی قصد به مبحث متغیر های ثابت یا به اصطلاح Constants Variables بپردازیم. قبل از تعریف این موضوع به کدهای زیر دقت کنید:int myNumber = 2000;myNumber = 4000;Console.WriteLine(myNumber);به نظر شما مقدار متغیر myNumber برابر 2000 است یا 4000؟ سوال جالبی است. جواب این است که مقدار فعلی این متغیر 4000 است. بله این ویژگی وجود دارد که وقتی برای اولین بار به متغیری مقداری نسبت داده می شود، در خط بعدی و در جای دیگر بتوان مقدار آن متغیر را عوض کرد یا به اصطلاح بتوان مقدار دیگری به آن نسبت داد. این خاصیت را می توان برای هر نوع داده در هر متغیری پیاده سازی و استفاده کرد. دقیقا تا چه زمانی این ویژگی برقرار است؟ اگر از کلمه کلیدی const پیش از نوع داده تان استفاده نکنید، تا ابد بر قرار است!مبحث Constants Variables هاقطعا تا به اینجای کار به صورت غیر مستقیم هم که شده متوجه شده اید که منظور از Constants Variables ها چیست. زمانی از کلمه کلیدی و دستور const در پیش از نوع داده ای استفاده می کنیم که می خواهیم مقدار آن متغیر ثابت بماند و دستخوش هیچ تغیری نباشد. ساختار ساخت یک متغیر ثابت یا Constants Variables به این صورت است:constKeyword VariableType + VariableName + (=) + VariableValueدقیقا مانند آن تعریفی است که برای متغیر های غیر ثابت در قسمت دوم به کار بردیم اما با این تفاوت که قبل از تعریف نوع داده باید از کلمه کلیدی const استفاده کنیم. به مثالی در زیر که برای یک متغیرِ const از جنس رشته (String) زده شده است دقت کنید:const string location = &quot;https://virgool.io&quot;;مقداری ثابت به نام https://virgool.io در متغیر location به صورت ثابت برای همیشه ذخیره می ماند و هیچ راهی و هیچ روشی برای تغییر دادن مقدار این متغیر نمی توان ارائه کرد.مثالی دیگر با نوع داده عددی (int):const int myPersonaCode = 25800852;در مثال بالا هم مقدارِ ثابتِ 25800852 برای متغیر myPersonalCode در نظر گرفته شده است.کاربردگاهی لازم است که در یک برنامه مقدار یک متغیر تغییر نکند. فرض کنید برنامه ای داریم که می خواهیم به وسیله آن مساحت دایره (شعاع به توان 2 ضربدر عدد پی) را حساب کنیم. همه می دانند که مقدار عدد پی تقریبا برابر 3.14 است، مقدار دیگری که برای این متغیر سراغ ندارید؟ مگر تا به حال کمتر یا بیشتر از 3.14 دیده اید؟ پس نتیجه می گیریم متغیری که مقدار عدد پی را نگهداری می کند با حتما ثابت و const باشد. مثال:int radius = 25;const float piNumber = 3.14F;Console.WriteLine( radius * radius  * piNumber);نیازی به گفتن دیگر نباید باشد که 3.14 عددی اعشاری است و طبق قسمت دوم انواع داده های اعشاری مربوط به float بوده اند! خروجیِ برنامه محاسبهِ مساحتِ دایره برابر با 1962 خواهد بود. چرا از const برای متغیر piNumber استفاده کردیم؟ چون می دانیم همواره این عدد ثابت است و مقدار دیگری نباید به آن اختصاص دهیم. پس یعنی اگر در قسمت دیگری بخواهیم مقداری چاپ کنیم و اتفاقی آن را به piNumber اختصاص دهیم، متوجه می شویم که نباید با piNumber شوخی کنیم چون const است.-نکته شماره یک: اگر یک متغیرِ ثابت با کلمه کلیدی const تعریف کردیم و در خطوط دیگری از کد یا کلاً مکان دیگری بخواهیم مقدار این متغیر را عوض کنیم چه اتفاقی می افتد؟ پاسخ مشخص است این کار صورت نمی گیرد و در عوض با Error مواجه خواهیم شد. می گویید نه امتحان کنید:const int myNum = 15;myNum = 20;Console.WriteLine(myNum);خروجی:prog.cs(10,7): error CS0131: The left-hand side of an assignment must be a variable, a property or an indexer Compilation failed: 1 error(s), 0 warnings.قسمت هفتم از سری آموزش های #C به پایان رسد و امیدوارم مفید واقع بوده باشد. تا قسمت های دیگر در آینده برای شما دوستان عزیز آرزوی کدی بی باگ دارم و خدانگهدار!</description>
                <category>محمد شعبانی</category>
                <author>محمد شعبانی</author>
                <pubDate>Tue, 02 Jul 2024 08:11:44 +0330</pubDate>
            </item>
                    <item>
                <title>بررسی مبحث Input در زبان #C - قسمت ششم</title>
                <link>https://virgool.io/@mohammadshabani/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D9%85%D8%A8%D8%AD%D8%AB-input-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-c-%D9%82%D8%B3%D9%85%D8%AA-%D8%B4%D8%B4%D9%85-kd0epc8hfqok</link>
                <description>بررسی مبحث دریافت داده از کاربر در زبان سی شارپسلام عرض می کنم خدمت شما دوستان عزیزم در این جلسه آموزشی قصد به مبحث دریافت داده از کاربر در زبان قدرتمند #C بپردازیم. در جلسات گذشته ما فقط عبارتی را روی صفحه چاپ می کردیم اما این جلسه قصد که از کاربر یک دیتا به عنوان ورودی بگیریم و پردازشی رو دیتا ورودی انجام بدیم. درنهایت پردازش نهایی را در محیط کنسول چاپ کنیم.نحوه دریافت ورودی از کاربردر زبان سی شارپ برای دریافت ورودی از کاربر از تابع Console.ReadLine استفاده می کنیم. برای درک بهتر این موضوع به مثال زیر توجه کنید:قسمت های زرد رنگ مباحث مهم این جلسه هستند.در خط شماره 1 ما آمده ایم بسته System که حاوی محیط Console است را با دستور Using وارد پروژه خود کرده ایم. به مورد توجه بسیاری کنید. دوستانی که از سی شارپ پایین تر از نسخه 7 استفاده می کنند به موضوع زیاد دقت کنند.در خط شماره 7 با تابع Console.WriteLine روی صفحه عبارت !Say hello را چاپ کرده ایم. در خط نهم یک متغییر از نوع داده ای رشته ای (String) ساخته ایم و نام آن را response (پاسخ در فرهنگ لغت) گذاشته ایم. مقدار این متغییر را به تابع Console.ReadLine اختصاص داده ایم. معنی این دستور به این معنا است که از Console تابع ReadLine را وارد کن، حالا کار تابع ReadLine چیه؟ کار این تابع دریافت یک ورودی و ذخیره آن در متغییر اختصاص داده شده است.یعنی الان اگر کاربر داده ای را وارد کند در متغییر response به عنوان مقدار ذخیره می شود. برای مثال اگر من عبارت Mohammad را وارد کنم، مقدار متغییر response برابر با رشته Mohammad می شود.در خط شماره 11 از Console تابع WriteLine که همه می دانیم تابعی برای چاپ مقدار است را فراخوانی کرده ایم. در این تابع ابتدا رشته :You said را قرار داده ایم. سپس مقدار متغییر response را با علامت + به رشته !You said متصل کرده ایم.تبدیل داده ها رشته ای به عددیتمام مقدارهایی که از کاربر دریافت می کنیم به صورت پیشفرض در قالب یک مقدار String (رشته) هستند. گاهی وقت نیاز داریم پردازشی رو داده ها انجام دهیم. اما زبان سی شارپ رشته ها را به صورت زیر با هم جمع می کند:اگر دو عبارت hello و world را با هم جمع کنیم خروجی به صورت زیر است:Output: helloworldاگر دو عدد که به صورت رشته هستند برای مثال 2 و 8 را با هم جمع کنیم خروجی به صورت زیر است:Output: 82اما این منطقی نیست. جمع اعداد 8 و 2 عدد 10 می باشد. پس در اینجا پای تبدیل انواع داده (Converting Value) وسط میاد. ما نتیجه 10 را می خواهیم نه 82!برای تبدیل مقدار داده رشته ای به عددی به صورت زیر عمل می کنیم و از کلاس Convert و تابع toInt32 استفاده می کنیم.string response = Console.ReadLine();  دریافت مقدار و ذخیره آن در متغییر responseint responseConverted = Convert.toInt32(response); دریافت و تبدیل مقدار متغییر بالایی و ذخیره در این متغییر responseConvertedConsole.WriteLine(responseConverted + 10);چاپ مقدار و جمع آن با عدد 10با تابع toInt32 متغییری که می خواهیم به عدد (int) تبدیل کنیم انجام می شود و نام متغییر خود را در ورودی این تابع وارد کنید تا تبدیل انجام شود. منظور از ورودی بین دو پرانتز جلویی تابع است.از این قسمت به بعد ما در هر جلسه یک پروژه عملی پیاده سازی می کنیم. محاسبه مساحت مستطیل - پروژه عملی قسمت ششمدر این پروژه قصد داریم مساحت مستطیل را با سی شارپ محاسبه کنیم. ابتدا دو ورودی دریافت می کنیم. این ورودی ها شامل طول و عرض هستند.منطق پروژه ما چیست؟ منطق این است که از فرمول زیر پیروی کنیم:مساحت مستطیل = طول * عرض به کد زیر دقت کنید:در خط شماره 10 طول مستطیل را دریافت و درون متغییر width ذخیره می کنیم.در خط شماره 11 عرض مستطیل را دریافت و درون متغییر height ذخیره می کنیم.در خط شماره 14 یک متغییر از نوع int (عددی) ساخته ایم و از کلاس Convert تابع toInt32 را بیرون کشیده و سپس مقدار متغییر width را در متغییر width_Convert تبدیل و ذخیره می کنیم.در خط شماره 15 یک متغییر از نوع int (عددی) ساخته ایم و از کلاس Convert تابع toInt32 را بیرون کشیده و سپس مقدار متغییر height را در متغییر height_Convert تبدیل و ذخیره می کنیم.در خط شماره 18 مقدارهای تبدیل شده را در هم ضرب و چاپ می کنیم. من در ورودی خواسته شده عدد 2 به عنوان طول و عدد 4 به عنوان عرض داده ام که نتیجه نهایی برابر با هشت شده است.خب این بخش هم به پایان رسید. ممنون از این که این بخش رو هم با من همراه بودید و وقت ارزشمندتان را در اختیار من گذاشتید. امیدوارم توانسته باشم به خوبی این مبحث را آموزش داده باشم. اگر نظری، پیشنهادی و انتقادی دارید خوشحال می شوم در بخش نظرات با من در میان بگذارید. اگر هم دوست داشتید که جلسات این دوره و دوره های دیگر را به راحتی به دست آورید ما را درون شبکه اجتماعی ویرگول دنبال کنید. شاد و موید و پیروز باشید و خدانگهدار.</description>
                <category>محمد شعبانی</category>
                <author>محمد شعبانی</author>
                <pubDate>Fri, 30 Apr 2021 00:50:45 +0430</pubDate>
            </item>
                    <item>
                <title>بررسی کامنت ها (Comments) در #C - قسمت پنجم</title>
                <link>https://virgool.io/@mohammadshabani/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%DA%A9%D8%A7%D9%85%D9%86%D8%AA-%D9%87%D8%A7-comments-%D8%AF%D8%B1-c-vqnqxpb3kqmz</link>
                <description>بررسی کامنت ها (Comments) در #Cسلام عرض می کنم خدمت شما دوستان و همراهان عزیز امیدوارم که حالتون خوب باشه. محمد شعبانی هستم و در این جلسه قصد داریم که مبحث کامنت ها (Comments) را در زبان سی شارپ بررسی کنیم.اصلا کامنت ها چه هستند؟پروژه برزرگی را تصور کنید که مثلاً چهار برنامه نویس مشغول کار روی آن هستند. هر برنامه نویس یکسری دستوراتی را می نویسد. اما فرآیند مطالعه و تفسیر این کدی که توسط برنامه نویس اول نوشته شده برای برنامه نویس دوم ممکن است کمی راحت نباشد. برای همین برنامه نویسان از مبحث کامنت استفاده می کنند تا یکسری از توضیحات را روی پروژه خود پیاده کنند. این توضیحات را برای کدهای خود می نویسند. این توضیحات به چشم مترجم (Compiler) نمی آیند و اجرا نمی شوند.نحوه تعریف کامنت ها در زبان #Cبرای نوشتن کامنت ها در سی شارپ از دو ممیز ( // ) استفاده می کنیم. برای مثال به کد زیر دقت کنید:کامنت ها در سی شارپبالای تابع Console.WriteLine عبارت خاکستری رنگی را مشاهده می کنید که توضیح This is a Comment درون آن نوشته شده است. در واقع این متن بیانگر کاری است که دستور خط پایینی آن انجام می دهد و کامنت گذاری در پروژه هایی که چند برنامه نویس روی آن فعالیت می کنند امری مهم است.شما هر چقدر که بخواهید می توانید کامنت گذاری کنید. برای مثال کد زیر شامل دو کامنت است:// The bottom line prints the phrase Hello World.Console.WriteLine(&quot;Hello World&quot;);مثال دوم:// Using the System Driectives in C#Using System;این توضیحات می توانند به هر زبانی باشند. در اینجا منظور از زبان انسانی است. شما می توانید به زبان های فارسی، انگلیسی، هلندی، اسپانیایی و هر زبان زنده دنیا در پروژه خود کامنت نویسی کنید.کامنت های چند خطیگاهی لازم می شود که کامنت در چند خط جاگیرد و در قالب یک خط جا نمی شود. به کد زیر دقت کنید:کامنت چند خطی در سی شارپکد بالا در دو خط توضیح، کامنت شده است. برای نوشتن کامنت هایی که بیش از یک خط هستند باید برای شروع کامنت از علامت ممیز ستاره (*/) و در بین آنها کامنت خود و در نهایت با علامت ستاره ممیز (/*) آن را می بندیم.همچنان توجه داشته باشید که کامنت ها اجرا نمی شوند، بلکه توضیحاتی هستند که درباره کدها و دستورات داده می شوند.خب این بخش هم به پایان رسید. ممنون از این که این بخش رو هم با من همراه بودید و وقت ارزشمندتان را در اختیار من گذاشتید. امیدوارم توانسته باشم به خوبی این مبحث را آموزش داده باشم. اگر نظری، پیشنهادی و انتقادی دارید خوشحال می شوم در بخش نظرات با من در میان بگذارید. اگر هم دوست داشتید که جلسات این دوره و دوره های دیگر را به راحتی به دست آورید ما را درون شبکه اجتماعی ویرگول دنبال کنید. شاد و موید و پیروز باشید و خدانگهدار.</description>
                <category>محمد شعبانی</category>
                <author>محمد شعبانی</author>
                <pubDate>Thu, 29 Apr 2021 01:42:00 +0430</pubDate>
            </item>
                    <item>
                <title>بررسی Directive ها در سی #C و نحوه وارد کردن آنها در پروژه - قسمت چهارم</title>
                <link>https://virgool.io/@mohammadshabani/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-directive-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%B3%DB%8C-c-%D9%88-%D9%86%D8%AD%D9%88%D9%87-%D9%88%D8%A7%D8%B1%D8%AF-%DA%A9%D8%B1%D8%AF%D9%86-%D8%A2%D9%86%D9%87%D8%A7-%D8%AF%D8%B1-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%82%D8%B3%D9%85%D8%AA-%DA%86%D9%87%D8%A7%D8%B1%D9%85-uakubacs46vo</link>
                <description>بررسی Directive ها در سی شارپ و نحوه وارد کردن آنها در پروژهسلام عرض می کنم خدمت شما دوستان و همراهان ارجمند در این قسمت قصد داریم Directive ها را بررسی کنیم و چند تا از آنها را از پکیج NET. فریمورک وارد کنیم.دات نت فریمورک چیست؟مجموعه ای از دستورات آماده و از قبل نوشته شده زبان سی شارپ است که با افزودن آنها به پروژه خود می توانیم از آنها استفاده کنیم. با افزودن این دستورات به پروژه خود دیگری نیازی به نوشتن دستورات اضافی نیست.در برنامه قبل از کد زیر برای چاپ یک عبارت روی صفحه کنسول استفاده کردیم:Console.WriteLine(&quot;Hello World&quot;);حالا کنسول (Console) از کجا آمده؟ چگونه از آن می توانیم استفاده کنیم؟برای اینکه بتوانیم از کلاس Console در برنامه خود استفاده کنیم ، باید دستورالعمل استفاده را در بالای پروژه خود اضافه کنیم:using System;جهت آشنایی بیشتر با این مطلب تا انتهای این جلسه با ما همراه باشید.نحوه وارد کن Directive ها در زبان #Cفرمول وارد کردنUsing PakeageName;ما همیشه برای وارد کردن یک بسته به پروژه خود باید از دستور Using استفاده کنیم. بعد یک فاصله می گذاریم. سپس نام بسته را وارد می کنیم. همان طور که در جلسات قبل عرض کردم در انتهای هر خط برای بستن و اتمام آن باید از سِمی کالُن ( ; ) استفاده کنیم.به تصویر زیر دقت کنید:فقط به خط اول این کد دقت کنید. ما با استفاده از دستور (کلمه کلیدی) Using از پکیج NET. بسته System را وارد کرده ایم. این کد به معنای این است که بسته System را وارد پروژه من کن، که طریقه وارد کردن بسته ها همیشه با کلمه کلیدی Using همراه است. حالا این بسته System چیست؟ در جلسات قبلی برای چاپ یک متن روی صفحه نمایش از دستور System.WriteLine(&quot;Hello&quot;) استفاده می کردیم.معنی این کد این است که از بسته System تابع (Function) WriteLine را باز کن. الان نیازی نیست که با مفهوم تابع آشنا شوید جلوتر همه را بررسی خواهیم کرد. بدون وارد کردن بسته System چاپ یک متن درون کنسول غیر ممکن است. اینجاست که کاربرد بسته ها را درک می کنیم.خب این بخش هم به پایان رسید. ممنون از این که این بخش رو هم با من همراه بودید و وقت ارزشمندتان را در اختیار من گذاشتید. امیدوارم توانسته باشم به خوبی این مبحث را آموزش داده باشم. اگر نظری، پیشنهادی و انتقادی دارید خوشحال می شوم در بخش نظرات با من در میان بگذارید. اگر هم دوست داشتید که جلسات این دوره و دوره های دیگر را به راحتی به دست آورید ما را درون شبکه اجتماعی ویرگول دنبال کنید. شاد و موید و پیروز باشید و خدانگهدار.</description>
                <category>محمد شعبانی</category>
                <author>محمد شعبانی</author>
                <pubDate>Tue, 27 Apr 2021 21:16:37 +0430</pubDate>
            </item>
                    <item>
                <title>قواعد نامگذاری متغییرها در #C - قسمت سوم</title>
                <link>https://virgool.io/@mohammadshabani/%D9%82%D9%88%D8%A7%D8%B9%D8%AF-%D9%86%D8%A7%D9%85%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C-%D9%85%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1%D9%87%D8%A7-%D8%AF%D8%B1-c-%D9%82%D8%B3%D9%85%D8%AA-%D8%B3%D9%88%D9%85-wr66kvhadqq0</link>
                <description>قواعد نامگذاری متغییرها در سی شارپسلام عرض می کنم خدمت شما دوستان عزیز و بزگوار در این جلسه قصد برسی مبحث قواعد نامگذاری متغییرها در زبان قدرتمند و شیءگرا #C را داریم.  در تعریف و نامگذاری متغییرها باید به نکات زیر توجه کنیم. در غیر این صورت متغییر ما معتبر نمی باشد. این نکات عبارت اند از:1- نام متغییر باید با یکی از حروف الفبا (a-z | A-Z) شروع شود.2- از نامگذاری متغییر با استفاده از کاراکترهای غیر مجاز نظیر (#، $، !) خودداری کنید.3- از کلمات رزرو شده (Keywords) مثل (void، static، public) نمی توان برای نامگذاری متغیرها استفاده کرد. (در جلسات آینده به خوبی همه ی کلمات کلیدی را بررسی خواهیم کرد).4- زبان سی شارپ حساسیت نسبت به حروف بزرگ و کوچک (Case Sensitive) دارد. مثلا حرف A با a در سی شارپ متفاوت است.5- در نام متغییر نباید در بین حروف از کاراکتر فاصله (Space) استفاده شده باشد. برای جداسازی حروف از یکدیگر می توانیم از موارد ذکر شده در زیر استفاده کنیم:    1- می توانیم برای جداسازی از آندِرلاین ( _ ) استفاده کنیم. مثل: rules_name    2- می توانیم برای جداسازی اول حروف را با کلمه بزرگ بنویسیم. مثل: RulesName    3- استفاده از دو آندِرلاین ( _ ) موردی ندارد. مثل: Rules__Name6- در تعریف متغییرها از چند سبک می توانیم پیگیری کنیم: (جلسه قبل با نوع داده ای متغییرها آشنا شدیم. این جلسه به نام گذاری متغییرها دقت کنید.)  1- حروف بزرگ (Upper Case): به این صورت هستند که هر دو حرف با حروف بزرگ هستند.:String RulesName = &quot;Rules Name in C#&quot;;  2- حروف کوچک (Lower Case): به این صورت هستند که همه ی حروف با حروف کوچک هستند:String rulesname = &quot;Rules Name in C#&quot;;    3- حروف کوچک و بزرگ (Uppercase and Lowercase Case): به این صورت هستند که حرف اول کوچک        و حرف دوم بزرگ هست:String rulesName = &quot;Rules Name in C#&quot;;خب این بخش هم به پایان رسید. ممنون از این که این بخش رو هم با من همراه بودید و وقت ارزشمندتان را در اختیار من گذاشتید. امیدوارم توانسته باشم به خوبی این مبحث را آموزش داده باشم. اگر نظری، پیشنهادی و انتقادی دارید خوشحال می شوم در بخش نظرات با من در میان بگذارید. شاد و موید و پیروز باشید و خدانگهدار.</description>
                <category>محمد شعبانی</category>
                <author>محمد شعبانی</author>
                <pubDate>Tue, 27 Apr 2021 20:51:53 +0430</pubDate>
            </item>
                    <item>
                <title>بررسی متغییرها (Variables) در #C - قسمت دوم</title>
                <link>https://virgool.io/@mohammadshabani/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D9%85%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1%D9%87%D8%A7-variables-%D8%AF%D8%B1-c-hphgvsayzs8s</link>
                <description>برسی متغییرها در سی شارپسلام عرض می کنم خدمت دوستان عزیز، با یک دیگر از قسمت های آموزش زبان قدرتمند #C در خدمتتون هستیم. امیدوارم که مطالب جلسه قبل (برسی مِتُد Main در #C) را مطالعه کرده باشید و آن را به خوبی درک کرده باشید.در این جلسه قصد داریم که به مبحث مهم متغییرها در زبان سی شارپ بپردازیم. اولین سوالی که ممکن است در ذهن شما پیش بیاید این سوال است که اصلاً متغییر چیست؟ از متغییرها برای ذخیره اطلاعات در حافظه (Memory) استفاده می شود. هر متغییر از دو بخش اصلی تشکیل شده است: 1- نام متغییر (Variable Name)2- مقدار متغییر (Variable Value)همه ی متغییرها نام و مقدار دارند. به عنوان مثال شما مقداری آب را فرض کنید که قصد نگهداری آن را داریم. خب برای نگهداری از آن باید از یک سطل استفاده کنیم. منظور از آب در اینجا مقدار متغییر و منظور از سطل نام متغییر است.همان طور که از اسم آنها پیداست قابل تغییر هستند. به معنا که شما می توانید هر چند بار که بخواهید مقدار یک متغییر را تغییر دهید.انواع متغییرها در #Cنوع منطقی (Boolean): این نوع داده تنها دو صورت ممکن دارد. که آن دو صورت از صحیح (True) و غلط (False) تشکیل شده است. کاربرد این نوع داده در مبحث گزاره های شرطی بیان می شود که برای صحیح یا غلط بودن یک شرط استفاده می شود. به عنوان مثال ما قصد داریم که چک کنیم اگر به دیتابیس متصل شدی (در صورتی که حالت صحیح باشد) روی صفحه عبارت I&#x27;m Connected to Data Base را روی صفحه چاپ کن و اگر به دیتابیس متصل نشدی (در صورتی که حالت غلط یا ناصحیح باشد) روی صفحه عبارت I dide&#x27;nt Connected to Data Base را چاپ کن.نوع رشته ای (String): فقط عبارت های متنی را در خود ذخیره می کند. به عنوان مثال برای ذخیره متن Hello World باید از این نوع داده ای در تعریف متغییر خود استفاده کنیم.نوع عددی (Integer): این نوع داده تنها اعداد صحیح کامل را در خود ذخیره می کند. به عنوان مثال برای ذخیره سازی عدد 2816 از این نوع داده ای در تعریف متغییر خود استفاده کنیم.نوع عدد اعشاری (Float): فقط عبارت های اعشاری را در خود ذخیره می کند. به عنوان مثال برای ذخیره سازی عدد اعشاری 28.16 باید از این نوع داده ای در تعریف متغییر خود استفاده نماییم.نوع عدد اعشاری بیش از 15 رقم اعشار (Duble): این نوع داده تنها اعدادی که دارای قسمت اعشاری بزرگتر از 3 رقم تا 15 رقم را دارند، ذخیره می کند. به عنوان مثال برای ذخیره سازی عدد اعشاری 145.678923 از این نوع داده ای باید در تعریف متغییر استفاده کرد.نوع داده یک حرفی (Char): فقط عبارت های یک حرفی یا یک کاراکتری که واحد(یک) هستند، را در خود ذخیره می کند. برای مثال حرف A را می توانیم با استفاده از این نوع داده ای در تعریف متغییر خود استفاده کنیم.طریقه تعریف متغییر در #C  به طور کلی فرمول تعریف متغییرها در زبان سی شارپ به این صورت هستند: VariableType + VariableName + (=) + VariableValueنوع داده متغییر + نام متغییر + (=) + مقدار متغییراین فرمول را همیشه به یاد داشته باشید. همچنین قبل از خواندن موارد بیشتر به نکات زیر توجه کنید:نکته 1: توجه داشته باشید که تمامی عبارت های متنی باید بین دو تا دابل کوتیشن (&quot; &quot;) یا سینگل کوتیشن (&#x27; &#x27;) قرار گیرند.نکته 2: در زبان سی شارپ بعد از اتمام هر خط باید آن خط را ببندیم و برای بستن آن خط از علامت سِمی کالُن (;) استفاده می کنیم. این علامت به مترجم (Compiler) می فهماند که آن خط در این قسمت به پایان رسیده است.نکته 3: زبان سی شارپ حساس به حروف کوچک و برزگ (Case Sensitive) است و باید در تعریف و دریافت مقدار آنها به این مورد توجه کرد. مثلا در زبان سی شارپ Message با message فرق دارد. یا MESSAGE با MessAGE متفاوت است.تعریف یک متغییر از نوع رشته ای (String)string Message = &quot;Hello, Welcome To Virgool.io&quot;;همان طور که در بالا مطرح شد ابتدا نوع متغییر را مشخص می کنیم و از آنچه که در بالا خوانده ایم متوجه میشم که قصد تعریف یک متغییر از نوع String را داریم. پس برای این کار نوع داده را مشخص می کنیم.سپس نام متغییر را انتخاب می کنیم. در اینجا من نام متغییرم را Message گذاشته ام. برای دادن مقدار به متغییر تعریف شده باید از علامت مساوی (=) استفاده کرد و سپس با یک فاصله از مساوی درون دابل کوتیشن مقداری که قصد ریختن آن درون متغییر را داریم می نویسیم.برای دسترسی به مقدار این متغییر فقط کافی از نام آن استفاده کنیم. مثلا من می خواهم مقدار متغییر Message را روی صفحه چاپ کنم پس می نویسم:Console.WriteLine(Message);به کد بالا نگاه کنید که درون تابع چاپ (Console.WriteLine) به عنوان ورودی (Parametr) برای چاپ متغییر Message را پاس داده ام و خود مترجم (Compiler) می فهمد که باید مقدار متغییر Message را درون صفحه چاپ کند.تعریف یک متغییر از نوع عددی (Integer)int number = 2816;از نوع داده ای int برای تعریف نوع متغییر استفاده شده. number یک نامی است که برای شناسایی و دسترسی به متغییر استفاده شده. مقدار 2816 نیز یک مقدار عددی دلخواه است که به متغییر number اختصاص داده شده است.تعریف یک متغییر از نوع عدد اعشاری (Float)float numberFloat = 19.90;از float برای تعیین نوع داده استفاده شده. از numberFloat برای دادن یک نام به متغییر استفاده شده. مقدار 19.90 یک مقدار دلخواه است که به متغییر numberFloat پاس داده شده است.تعریف یک متغییر از نوع عددی اعشاری بیش از 3 رقم (Duble)duble numberDuble = 29.91202224;از duble برای تعیین نوع داده استفاده شده. از numberDuble برای دادن یک نام به متغییر استفاده شده. مقدار 29.91202224 یک مقدار دلخواه است که به متغییر numberDuble  پاس داده شده است.تعریف یک متغییر از نوع حروف واحد (Char)char FirstCharacterName = &#x27;M&#x27;;همان طوری که ذکر کردم یک حرف واحد یا یک کاراکتر را ذخیره می کند. از char برای تعیین نوع داده استفاده شده. از FirstCharacterName برای دادن یک نام به متغییر استفاده شده. مقدار M یک مقدار دلخواه است که به متغییر FirstCharacterName پاس داده شده است.نکته 1: توجه کنید که کاراکتر شما باید حتما بین سینگل کوتیشن (&#x27; &#x27;) قرار گیرد. اگر که از دابل کوتیشن (&quot; &quot;) استفاده کنید با ارور زیر مواجه خواهید شد: اروری که در تِب Error List قابل مشاهده است.خب ممنونم که با من همراه بودید و وقت ارزشمندتان را در اختیار من قرار دادید. امیدوارم که توانسته باشم مطلب را به خوبی برای شما دوستان عزیز شرح داده باشم. اگر انتقادی، پیشنهادی و نظری دارید خوشحال میشوم که آن را با من در قسمت نظرات به اشتراک بگذارید. شاد و موید و پیروز باشید و خدانگهدار.</description>
                <category>محمد شعبانی</category>
                <author>محمد شعبانی</author>
                <pubDate>Mon, 26 Apr 2021 20:53:08 +0430</pubDate>
            </item>
                    <item>
                <title>بررسی مِتُد Main در #C - قسمت اول</title>
                <link>https://virgool.io/@mohammadshabani/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D9%85%D9%90%D8%AA%D9%8F%D8%AF-main-%D8%AF%D8%B1-c-ksostlh19ojl</link>
                <description>نمونه مِتُد Mainسلام عرض می کنم خدمت شما دوستان و دوست داران برنامه نویسی، با یک مقاله دیگه خدمتتون هستیم و اما این بار با بررسی مِتُد (Method) Main در زبان قدرتمند و شیءگرا سی شارپ. اگر مشتاق هستید که بیشتر درباره این موضوع بدانید پس تا آخر این مقاله با ما همراه باشید. درنهایت هم اگر دوست داشتید که از آپدیت های جدید این زبان برنامه نویسی و سایر موضوعات مربوط به تکنولوژی با خبر باشید ما را دنبال بفرمایید.در اصل متد Main به چه معنا است و چه کاری را انجام می دهد؟ در پاسخ به این سوال باید بگویم که به طور پیش فرض زبان #C مِتُد Main دارد که کار این مِتُد در اصل فراخوانی برنامه نوشته شده است. توجه داشته باشید #C از براکت {} برای نمایش بلوک های برنامه استفاده می کند.تمام کدهایی که درون بِراکت یا آکولاد Main قرار بگیرند به ترتیب یکی پس از دیگری اجرا خواهند شد. درحال حاضر اگر کلمه کلیدی static را نمی دانید مهم نیست و در آینده به آن خواهیم پرداخت. در تصویر بالا همان طور که مشاهده می کنید دو خط کد درون آکولاد این مِتُد نوشته شده است. طبق گفته های بالا هر کدی که درون آکولاد این مِتُد بنویسم اجرا می شود. حال ما آمده ایم در اولین خط دستور چاب عبارت Hello World را با دستور Console.WriteLine درون Console داده ایم. در خط بعدی برای اینکه کنسول بسته نشود (جهت مشاهده نتیجه) و تا زمانی که کلیدی فشرده نشده باز باشد از تابع  Console.ReadKey استفاده کرده ایم.به این تکه کد دقت کنید. هدف این برنامه چاپ جمع دو عدد 28 و 16 درون صفحه نمایشگر است.using System;class Program{        static void Main()        {               System.Console.WriteLine( 28 + 16);        }}تمام کدهایی که ما می نویسم در یک مرحله ای بالاخره باید اجرا شوند. کار متد Main فراخوانی برنامه نوشته شده درون بلوک های خودش است. در برنامه بالا ما آمدیم و درون متد Main گفتیم که جمع اعداد 28 و 16 را درون کنسول به نمایش بگذارد. درنهایت اگر برنامه را اجرا کنیم خروجی ما به این صورت خواهد بود:نمایش خروجی جمع اعداد 28 و 16در اجرای برنامه هم دقت نمایید که اگر می خواهید تا زمانی که کلیدی فشرده نشده باشد برنامه در حالت اجرا بماند کد زیر را در بلوک متد Main اضافه کنید:System.Console.ReadKey();البته این مورد در آپدیت سی شارپ 9 به دو روش صورت می گیرد. روش اول همان روشی است که در بالا خدمتتون توضیح دادم و روش دوم با حذف متد Main امکان پذیر است. کدها به این شکل هستند:using System;System.Console.WriteLine(&quot;Hello World&quot;);امیدوارم که توانسته باشم به خوبی این مبحث را آموزش داده باشم. ممنون از وقتی که برای مطالعه این مقاله گذاشتید. شاد و موید و پیروز باشید و تا یک مقاله دیگر شما دوستان عزیزم رو به خدای یکتا می سپارم. موفق باشید.</description>
                <category>محمد شعبانی</category>
                <author>محمد شعبانی</author>
                <pubDate>Sun, 25 Apr 2021 01:21:05 +0430</pubDate>
            </item>
            </channel>
</rss>