حالت موضوعی
رتبه موضوع:
  • 80 رای - 3.01 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5

قدم به قدم برنامه نویسی با زبان سی شارپ *C sharp*

#1
برنامه نویسان همیشه به دنبال راهی برای بهتر کردن کارایی، سودمندی و قابل‌ حمل بودن (استفاده در سیستم های عامل مختلف) برنامه های خود می گردند. بدین منظور همیشه دنبال ابزارهای زیادی هستند که از آن‌ها استفاده کنند. زبان‌های برنامه نویسی زیادی در دنیا وجود دارند اما تعداد اندکی از آن‌ها معتبر و عالی هستند. یک زبان برنامه نویسی عالی باید قدرتمند و در عین‌ حال انعطاف پذیر، نحو و گرامر (syntax) آن باید مختصر و مفید و در عین‌ حال واضح و روشن باشد.
[عکس: CSharpTime-Session01.jpg]
شرکت مایکروسافت در ژوئن سال ۲۰۰۰ پلتفرم NET. و زبان برنامه نویسی #C (بخوانید سی شارپ) را به‌ دنیای برنامه نویسی ارائه داد.  مایکروسافت در مصاف با جاوا به دنبال ارائه یک زبان کامل بود که حضور جاوا را در این میدان خیلی کم رنگ‌تر کند که تا امروز به هدف خود بسیار نزدیک شده‌ است و توانسته گستردگی و مقبولیتی به مراتب بیشتر از جاوا نزد توسعه دهندگان نرم افزار پیدا کند.
سی شارپ مستقیماً از دو زبان خیلی موفق C و ++C گرفته شده است. نحو و گرامر (syntax) و بسیاری از کلمات کلیدی و عملگرهای آن از زبان C و مدل شی گرایی آن از ++C تاثیر پذیرفته، این زبان همچنین به شدت از زبان‌های جاوا و دلفی مشتق شده است.
در طول تاریخ کامپیوتر، زبان‌های برنامه نویسی تکامل یافتند تا با تغییرات در زمینه ی کامپیوتر و همه ی تفکرات نوین در مورد برنامه نویسی منطبق شوند، همان‌طور که همه‌ی برنامه نویسان می‌دانند هیچ‌ چیز به مدت طولانی در دنیای برنامه نویسی ثابت باقی نمی‌ماند، سی شارپ هم از این قاعده مستثنا نبود و توانایی بالای خودش را در پاسخ گویی سریع به نیازهای برنامه نویسان نشان داد. از سال ۲۰۰۰ که اولین نسخه ی سی شارپ (C# 1.0) منتشر شد تا به امروز که آخرین نسخه از سی شارپ (C# 4.0) منتشر شده ویژگی های بسیاری به آن افزوده شده است و در این مقالات سعی بر این است که از جدیدترین ویژگی ها در آموزش و مثال ها استفاده شود.
سی شارپ زبان برتر شرکت مایکروسافت و مادر زبان های برنامه نویسی NET. است. بر خلاف باور بعضی ها که تصور می کنند سی شارپ تنها برای محصولات خود شرکت مایکروسافت از جمله ویندوز، ویندوز موبایل و… است، سی شارپ به گونه ای طراحی شده که وابستگی به یک پلتفرم خاص را ندارد. شما با زبان #C می توانید برای سیستم های ‌عامل ویندوز، مکینتاش، ویندوز موبایل، آندروید، iOS، لینوکس و… نرم افزار تولید کنید کافی است یک سر به سایت mono بزنید و اطلاعات کامل در این مورد را بدست آورید.
بدون شک تسلط و فراگیری زبان سی شارپ به منزله یک پتانسیل با ارزش بوده که ثمرات آن برای شما در آینده بیشتر هویدا خواهد شد. استاندارد بودن و وجود کتابخانه های مملو از کلاس های مفید به شما این اطمینان را می دهد که با یادگیری این زبان به یک توانایی فرامحیطی جدید دست پیدا خواهید کرد و بتوانید در سیستم های عامل‌ مختلف نرم افزار خود را تولید کنید و از برنامه نویسی لذت ببرید. اگر برای برنامه نویسی زبان سی شارپ را انتخاب کرده‌اید، انتخاب شما کاملاً صحیح است.
در سری مقالات آموزشی «زنگ سی شارپ» در وب تارگت، قصد مقایسه سی شارپ را با جاوا و دیگر زبان ها نداریم و تنها به آموزش این زبان می پردازیم به نحوی که برای شما مفید باشد. در این سری از مقالات آموزشی نیازی نیست از قبل با هیچ زبان برنامه نویسی آشنایی داشته باشید چرا که از ابتدا و صفر شروع خواهیم کرد اما در صورت آشنایی قبلی یادگیری برای شما آسان‌تر خواهد بود. لازم‌ به ‌ذکر است که در این مقالات، برنامه نویسی ما تحت محیط Console بوده و اگر شما مایل به یادگیری این زبان شیرین باشید و تمام قسمت های بعدی مقالات “زنگ سی شارپ” را دنبال کنید ما با مثال ها و تمرینات مختلف تا حد مقبولی به شما خوانندگان عزیز این زبان برنامه نویسی را آموزش می‌دهیم.
در قسمت های بعدی «زنگ سی شارپ» ، با کد‌نویسی این زبان و محیط برنامه بیشتر آشنا خواهیم شد.

منبع:وب تارگت
(آخرین تغییر در ارسال: 08-08-2015، 03:32 PM توسط kianooshhosseini.)



به هم کمک کنیم تا بهتر یاد بگیریم! Heart Heart

راهنمایی درباره استفاده از سایت
تعرفه تبلیغات






#2
در قسمت قبل اندکی با تاریخچه سی شارپ و توضیحات مختصری در مورد آن و در مورد این سری از مقالات آموزشی آشنا شدیم. در این قسمت قصد داریم بیشتر با کد نویسی و محیط برنامه Visual Studio IDE آشنا شویم. ویژوال استودیو، IDE شرکت مایکروسافت است و IDE مخفف Integrated Development Environment (محیط یکپارچه توسعه نرم افزار) است.
[عکس: CSharpTime-Session-02.jpg]
Visual Studio به شما اجازه ویرایش، کامپایل، اجرا و خطایابی (Debug) برنامه های سی شارپ را می‌دهد پس برای دنبال کردن این سری مقالات و یادگیری #C نیاز دارید که یک نسخه از ویژوال استودیو را روی سیستم خود نصب کنید و پیشنهاد من نسخه ی ۲۰۱۰ به‌ بعد است چرا که ممکن است در برخی از موارد از ویژگی های C# 4.0 استفاده کنیم. همچنین می‌توانید نسخه ی رایگان را از وب‌سایت مایکروسافت دریافت کنید. دیگر وقت آن رسیده است که اولین برنامه سی شارپ را بنویسیم. برای این منظور باید یک پروژه برای سی شارپ در ویژوال استودیو بسازیم. پس مراحل زیر را برای ساخت یک پروژه خالی سی شارپ که در اینجا از Visual Studio 2010 Professional استفاده شده‌ است دنبال ‌کنید.
 
۱. ویژوال استودیو را اجرا کنید و از منوی بالا به File => New => Project بروید، سپس Windows را از لیست قالب های نصب‌ شده انتخاب کنید، بعد از آن Console Application را انتخاب کنید:
[عکس: Step_01.jpg]
سپس نام پروژه خودتان را در قسمت Name وارد کنید و روی OK کلیک کنید تا پروژه شما ساخته شود.
۲. زمانی که پروژه شما ساخته شد، ویژوال استودیو بدین شکل به نظر می‌رسد:
[عکس: Step_02.jpg]
اگر به ‌هر ‌دلیلی پنجره Solution Explorer را در سمت راست مشاهده نکردید می‌توانید از منوی View با انتخاب Solution Explorer آن را فعال کنید.
تا اینجا شما توانستید پروژه خودتان را که هم اکنون آماده برای کد نویسی است تهیه کنید. همان‌طور که مشاهده می‌کنید مقداری کد به صورت پیش‌فرض در پنجره Program.cs قرار دارد که در ادامه به‌ شرح مختصر آن‌ها می‌پردازیم.
[align=right !important]1[/align] [code]
using
[/code]

[code]
System;
[/code]
این خط‌ کد مشخص می‌کند که برنامه شما از فضای نام System استفاده می‌کند که یکی از فضاهای نام (namespaces) پایه ای در Net Framework. است. احتمالاً هنوز نمی‌دانید Net Framework. چیست، پس حتماً مقاله ی چهار چوب دات نت را در ویکی‌پدیا مطالعه بفرمایید.
Namespace روشی برای مدیریت کد و گروه بندی کلاس های مرتبط به هم است.
[align=right !important]1[/align][align=right !important]2[/align][align=right !important]3[/align] [code]
using
[/code]

[code]
System.Collections.Generic;
[/code]
[code]
using
[/code]

[code]
System.Linq;
[/code]
[code]
using
[/code]

[code]
System.Text;
[/code]
توضیح این چند خط کد در مقالات بعدی و در جای خود دنبال خواهد شد.
[align=right !important]1[/align] [code]
class
[/code]

[code]
Program
[/code]
این خط کد از کلمه کلیدی class برای اعلان یک کلاس جدید که از قبل در Net Framework. تعریف شده است استفاده می‌کند. Program نام این کلاس است. تعریف کلاس با آکولاد باز } شروع و با آکولاد بسته { تمام می‌شود که عناصر بین آکولاد، اعضای کلاس هستند. از آنجا که سی شارپ یک زبان برنامه نویسی تماماً شی گرا است و همه ی سر‌ و‌ کارش با کلاس‌ها است باید در نحوه ی تعریف کلاس و استفاده از آن‌ها تسلط کافی داشته باشیم که این کار را در مقالات آینده انجام خواهیم داد.
[align=right !important]1[/align] [code]
static
[/code]

[code]
void
[/code]

[code]
Main(
[/code]
[code]
string
[/code]
[code]
[] args)
[/code]
متد ()Main در اینجا قسمتی است که عملیات اصلی برنامه در آن انجام می‌شود. بدون متد ()Main برنامه های سی شارپ قابل اجرا نخواهند بود، متد ()Main هم با آکولاد باز و بسته محدوده خودش را مشخص می‌کند. در مورد Method و Class بعداً مفصل توضیح خواهیم داد پس اصلاً نگران نباشید زیرا تا اینجا فقط یک توضیح مختصر در مورد کد‌های پیش‌فرضی بود که در ابتدا می‌دیدید.
اکنون اندکی با برنامه Visual Studio IDE و نحوه ی پروژه ساختن آشنا شدید. همین‌طور کدهای پیش فرضی که در ابتدا می‌دیدید را تا‌حدی شناختید. اکنون قصد داریم با چند کد ساده شروع به برنامه نویسی کنیم، ممکن است در ابتدا چیزی ببینید که اصلاً از آن سر در نمی‌آورید اما اصلاً نترسید چون همه چیز را تا حدی که مفهوم مطلب بیان شود و اطمینان حاصل شود که شما خوانندگان عزیز آن موضوع را درک کرده‌اید، توضیح خواهیم داد. فقط از خواندن باز نایستید! همان‌طور که گفته شد عملیات اصلی برنامه در متد ()Main نوشته می‌شود و فعلاً با بقیه‌ی قسمت‌ها کاری نداریم چرا‌ که در جای خود به آن‌ها می‌رسیم و به شرح آنها می‌پردازیم.
اکنون که با ساختن پروژه آشنا شدید، یک پروژه جدید بسازید.
به کد زیر نگاه کنید:
[align=right !important]1[/align][align=right !important]2[/align][align=right !important]3[/align][align=right !important]4[/align][align=right !important]5[/align][align=right !important]6[/align][align=right !important]7[/align][align=right !important]8[/align][align=right !important]9[/align][align=right !important]10[/align][align=right !important]11[/align][align=right !important]12[/align][align=right !important]13[/align][align=right !important]14[/align][align=right !important]15[/align][align=right !important]16[/align][align=right !important]17[/align][align=right !important]18[/align][align=right !important]19[/align][align=right !important]20[/align][align=right !important]21[/align] [code]
using
[/code]

[code]
System;
[/code]
[code]
using
[/code]

[code]
System.Collections.Generic;
[/code]
[code]
using
[/code]

[code]
System.Linq;
[/code]
[code]
using
[/code]

[code]
System.Text;
[/code]
 
[code]
namespace
[/code]

[code]
Project1
[/code]
[code]
{
[/code]
[code]
    
[/code]
[code]
class
[/code]

[code]
Program
[/code]
[code]
    
[/code]
[code]
{
[/code]
[code]
        
[/code]
[code]
// A C# program begins with a call to Main().
[/code]
[code]
        
[/code]
[code]
static
[/code]

[code]
void
[/code]

[code]
Main(
[/code]
[code]
string
[/code]
[code]
[] args)
[/code]
[code]
        
[/code]
[code]
{
[/code]
[code]
            
[/code]
[code]
/*
[/code]
[code]
                
[/code]
[code]
This is a simple C# program.
[/code]
[code]
                
[/code]
[code]
Green lines are comments.
[/code]
[code]
            
[/code]
[code]
*/
[/code]
 
[code]
            
[/code]
[code]
Console.WriteLine(
[/code]
[code]
"A Simple C# Program."
[/code]
[code]
);
[/code]
[code]
        
[/code]
[code]
}
[/code]
[code]
    
[/code]
[code]
}
[/code]
[code]
}
[/code]
همان‌طور که مشاهده می‌کنید مقداری از کد‌ها به صورت پیش فرض در صفحه ما بوده‌اند و فقط این چند خط جدید است:
[align=right !important]1[/align][align=right !important]2[/align][align=right !important]3[/align][align=right !important]4[/align][align=right !important]5[/align][align=right !important]6[/align][align=right !important]7[/align][align=right !important]8[/align] [code]
// A C# program begins with a call to Main().
[/code]
 
[code]
/*
[/code]
[code]
This is a simple C# program.
[/code]
[code]
Green lines are comments.
[/code]
[code]
*/
[/code]
 
[code]
Console.WriteLine(
[/code]
[code]
"A Simple C# Program."
[/code]
[code]
);
[/code]
خطوط سبز رنگی که در بالا مشاهده می کنید comment (توضیح) هستند. در سی شارپ ما همانند سایر زبان های برنامه نویسی اجازه داریم که از کامنت استفاده کنیم. همان‌طور که می‌بینید به دو طریق می‌توانیم comment بگذاریم. یکی نوشتن جلوی دو اسلش // و دیگری نوشتن مابین ستاره و اسلش /* */ محتوای کامنت ها توسط کامپایلر نادیده گرفته می‌شوند، کامنت ها فقط برای این منظور توسط برنامه نویس نوشته می‌شوند که هرکس در حال خواندن کد و برنامه است آن قسمت از کد را بفهمد زیرا کامنت ها اکثراً توضیح و شرحی در مورد کد هستند و نوشتن آن‌ها اختیاری است.
[align=right !important]1[/align] [code]
Console.WriteLine(
[/code]
[code]
"A Simple C# Program."
[/code]
[code]
);
[/code]
خط کدی که در بالا مشاهده می‌کنید، رشته‌ی “.A Simple C# Program” را در یک خط جدید در خروجی نمایش می‌دهد. فعلاً در همین حد بدانید که ()Console.WriteLine در این مثال یک String (رشته ای از کاراکترها) را در خروجی نمایش می‌دهد. بعداً متوجه خواهید شد که چطور این اتفاق می‌افتد. پس دانستید که String رشته ای از کاراکتر‌ها است که حتماً باید بین این علامت ” ” (بخوانید دابل کوتیشن، Double quotation) قرار بگیرد و ()Console.WriteLine برای چاپ کردن اطلاعات و پیغام در خروجی است و آن‌چه را که می‌خواهید در خروجی نمایش دهید باید بین () قرار دهید، درست طبق مثال. در انتهای آن نقطه و ویرگول بدین شکل ; قرار می‌گیرد که اصطلاحاً به آن Semicolon (بخوانید سمی کالن) گفته می شود. بدین صورت:
[align=right !important]1[/align] [code]
Console.WriteLine();
[/code]
علامت semicolon در پایان هر دستور قرار می‌گیرد و هر دستور به صورت جداگانه در قسمت پایانی خودش از semicolon استفاده می‌کند. در طول دوره آموزش با این روند آشنا خواهید شد که در چه جاهایی باید از semicolon استفاده کنید.
توجه داشته باشید که سی شارپ به حروف بزرگ و کوچک حساس و اصطلاحاً case-sensitive است و این بدین معنی است که اگر فراموش کنید کجا باید از حروف بزرگ و کوچک استفاده کنید برنامه شما دچار خطا می‌شود. برای مثال اگر نام یک متغیر را phoneNum انتخاب کرده باشید و در جای دیگر برای استفاده از آن بنویسید PhoneNum یا Phonenum آنگاه برنامه شما دچار مشکل می‌شود. دستور ()Console.WriteLine هم به همین روال است همین‌طور بقیه دستورها، هرچند که کامپایلر سی شارپ فوق العاده قدرتمند است و در صورت بروز کوچکترین خطا شما را با‌ خبر می‌کند، به جز خطاهای منطقی. در مورد خطاهای منطقی بعداً بیشتر صحبت خواهیم کرد. تا اینجا با یک سری از اصطلاحات و مفاهیم آشنا شدید، بعد‌ از اینکه یک سری از مطالب را با هم مورد بررسی قرار دادیم سراغ یک مثال درست و حسابی می‌رویم.
[align=right !important]1[/align][align=right !important]2[/align][align=right !important]3[/align][align=right !important]4[/align] [code]
static
[/code]

[code]
void
[/code]

[code]
Main(
[/code]
[code]
string
[/code]
[code]
[] args)
[/code]
[code]
{
[/code]
[code]
    
[/code]
[code]
Console.WriteLine(
[/code]
[code]
"A Simple C# Program."
[/code]
[code]
);
[/code]
[code]
}
[/code]
پس طبق کد بالا دستور چاپ یک string را بنویسید و سپس Ctrl + F5 را با‌هم بگیرید تا خروجی برای شما نمایش داده شود: (به جای فشردن Ctrl + F5، از منوی Debug با انتخاب Start Without Debugging هم می‌توانید این‌کار را انجام دهید)
[عکس: Step_03.jpg]
همان‌طور که می‌بینید A Simple C# Program در پنجره خروجی نمایش داده شد.

هدف از این سری مقالات آموزشی یادگیری سی شارپ به طور گام به گام و تقریباً کامل برای هر مبحث است. هرچند مجبوریم بعضی از مسائل را فعلاً به صورت کامل باز نکنیم تا در فهم موضوع دچار مشکل نشوید اما در آینده به آن‌ها پی خواهید برد. اگر این سری مقالات را همیشه دنبال کنید کم کم هر قسمت از زبان سی شارپ را به طور مفهومی آموزش می‌بینید. اگر در مورد مطلب هر قسمت سوالی برایتان پیش آمد و مشکلی داشتید می‌توانید در قسمت نظرات سوالات خود را مطرح کنید یا از شبکه‌های اجتماعی که در پروفایل من در همین سایت موجود است با من تماس بگیرید.
​در قسمت بعدی با value type، متغیرها و عملگرها آشنا می‌شویم.



به هم کمک کنیم تا بهتر یاد بگیریم! Heart Heart

راهنمایی درباره استفاده از سایت
تعرفه تبلیغات






#3
در قسمت قبل با یک برنامه ی ساده شروع کردیم که تنها در خروجی یک پیغام را چاپ می‌کرد، در این قسمت قصد داریم با متغیر‌ها (variables)، عملگر‌ها (operator) و value type بیشتر آشنا شویم.
[عکس: cSharpTimeSession03.jpg]
شاید هیچ سازه ای به اندازه ی متغیر‌ها برای یک زبان برنامه نویسی اهمیت نداشته باشند. متغیر‌ در واقع مکانی در حافظه است که می‌توان یک مقدار را به آن اختصاص داد. به این دلیل به ‌آن متغیر می‌گویند که مقدار آن می‌تواند در طول اجرای برنامه تغییر کند. به عبارت دیگر محتوای متغیر‌ها قابل تغییر هستند و همیشه ثابت نمی‌مانند.
ویژوال استودیو را اجرا کنید و یک پروژه جدید بسازید اگر این کار را نمی‌توانید انجام دهید حتماً قسمت قبل را مطالعه بفرمایید.
 
به برنامه زیر دقت کنید، این برنامه‌ دو متغیر را که اسم آن‌ها x و y است می‌سازد:
[code]using
[/code][code]System;
[/code][code]using
[/code][code]System.Collections.Generic;
[/code][code]using
[/code][code]System.Linq;
[/code][code]using
[/code][code]System.Text;
[/code] 
[code]namespace
[/code][code]Example
[/code][code]{
[/code][code]    
[/code][code]class
[/code][code]Program
[/code][code]    
[/code][code]{
[/code][code]        
[/code][code]static
[/code][code]void
[/code][code]Main(
[/code][code]string
[/code][code][] args)
[/code][code]        
[/code][code]{
[/code][code]            
[/code][code]int
[/code][code]x;
[/code][code]            
[/code][code]int
[/code][code]y;
[/code] 
[code]            
[/code][code]x = 100;
[/code][code]// this assign 100 to x
[/code] 
[code]            
[/code][code]Console.WriteLine(
[/code][code]"X Contains "
[/code][code]+ x);
[/code] 
[code]            
[/code][code]y = x / 2;
[/code] 
[code]            
[/code][code]Console.Write(
[/code][code]"y contains x / 2: "
[/code][code]);
[/code][code]            
[/code][code]Console.WriteLine(y);
[/code][code]        
[/code][code]}
[/code][code]    
[/code][code]}
[/code][code]}
[/code]
وقتی برنامه را اجرا کردید (توسط Ctrl + F5) خروجی زیر برای شما نمایش داده می‌شود:
x contains 100
y contains x / 2: 50
این برنامه شامل چندین مفهوم جدید است که در ادامه به شرح آن‌ها می‌پردازیم:
[code]int
[/code][code]x;
[/code]
اعلام یک متغیر که نام آن x و نوع آن عدد صحیح (integer) است. در سی شارپ ، همه ی متغیر‌ها پیش از این‌که مورد استفاده قرار بگیرند ابتدا باید اعلام شوند. علاوه بر این، نوع مقداری را که متغیر در خود نگه می‌دارد باید مشخص شود. در این مورد x می‌تواند مقادیر integer (عدد صحیح) را در خود نگه دارد. در سی شارپ، برای اعلام یک متغیر از نوع عدد صحیح (integer) قبل از نام آن از کلمه کلیدی int استفاده می‌کنند. پس int x یک متغیر را اعلام می‌کند که اسم آن x و نوع آن integer (عدد صحیح) است.
[code]int
[/code][code]y;
[/code]
توجه داشته باشید که در این مورد هم یک متغیر از نوع عدد صحیح ساخته می‌شود با این تفاوت که اسم آن فرق می‌کند. به صورت کلی شما برای اعلام یک متغیر از این الگو می‌توانید پیروی کنید:
[code]type
[/code][code]var
[/code][code]-name;
[/code]
که type نوع متغیر و var-name نام متغیر را مشخص می‌کند. علاوه بر int سی شارپ از نوع های داده ای (data type) دیگر هم پشتیبانی می‌کند که کامل به شرح آن‌ها خواهیم پرداخت.
[code]x = 100;
[/code]
این خط کد مقدار ۱۰۰ را به x اختصاص می‌دهد. در سی شارپ، عمل‌گر انتساب یک تک مساوی است و بدین صورت عمل می‌کند که یک کپی از مقدار سمت راست خودش را در متغیر سمت چپش قرار می‌دهد. همان‌طور که می‌بینید در این‌جا علامت انتساب باعث شده است که یک کپی از مقدار سمت راست (عدد ۱۰۰) در  متغیر سمت چپ (متغیر x) قرار بگیرد.
خط کد بعدی مقدار x را در خروجی نمایش می‌دهد که قبل از آن رشته‌ی ” X Contains” قرار دارد:
[code]Console.WriteLine(
[/code][code]"x contains "
[/code][code]+ x);
[/code]
در این خط کد علامت + موجب می‌شود که مقدار x بعد از string (رشته) نمایش داده شود. این روش می‌تواند یک حالت کلی به خود بگیرد. با علامت + شما می‌توانید آیتم های دیگری را که می‌خواهید در یک ()WriteLine داشته باشید، به هم وصل کنید.
خط کد بعدی مقدار x را که بر ۲ تقسیم شده است به y اختصاص می‌دهد:
[code]y = x / 2;
[/code]
این خط کد مقدار x را بر ۲ تقسیم و سپس نتیجه ی آن را در y ذخیره می‌کند. بنابراین بعد از اجرای این خط، y شامل مقدار ۵۰ می‌شود و مقدار x بدون تغییر باقی می‌ماند. سی شارپ مانند تمام زبان‌های برنامه نویسی طیف گسترده‌ ای از عمل‌گرهای محاسباتی را پشتیبانی را می‌کند. از جمله این عمل‌گر‌ها:
[عکس: operators.jpg]
دو خط بعدی برنامه:
[code]Console.Write(
[/code][code]"y contains x / 2: "
[/code][code]);
[/code][code]Console.WriteLine(y);
[/code]
دو چیز در این‌جا جدید است: اول ()Console.Write است که رشته ی :y contains x / 2 را در خروجی نمایش می‌دهد. تفاوت این دستور با دستور ()Console.WriteLine این است که وقتی خروجی بعدی تولید می‌شود از همان خط شروع می‌شود، نه از خط بعدی. دوم این‌که ()Console.WriteLine متغیر y را به عنوان ورودی گرفته است و مقدار آن را در خروجی نمایش می‌دهد. پس توجه داشته باشید، هنگامی که می‌خواهید مقدار یک متغیر را در خروجی نمایش دهید کافی است اسم آن را در ()Console.WriteLine یا ()Console.Write وارد کنید. همان‌طور که مشاهده می‌کنید مقدار y در جلوی رشته‌ی :y contains x / 2 نمایش داده می‌شود زیرا برای چاپ این رشته از ()Console.Write استفاده کردیم ولی اگر از ()Console.WriteLine استفاده می‌کردیم مقدار y در خط بعدی نمایش داده می‌شد.
یک نکته ی جالب دیگر در مورد اعلام متغیرها این است که شما می‌توانید دو یا بیشتر از دو متغیر را در یک تعریف‌ متغیر اعلام کنید. فقط کافی است اسم متغیر‌ها را با کاما از هم جدا کنید، برای مثال متغیر‌های y و x را از این روش هم می‌توان اعلام کرد:
[code]int
[/code][code]x, y;
[/code]
همچنین نیازی نیست که ابتدا متغیر را تعریف کنید و بعد به آن مقدار بدهید، می‌توانید این کار را هم زمان با تعریف متغیر انجام دهید. بدین صورت:
[code]int
[/code][code]x = 100;
[/code]
تا اینجا ما فقط از اعداد صحیح برای محاسبه استفاده کردیم، مثل عدد ۱۸ یا ۲۲ و غیره. برای استفاده از اعداد اعشاری مثل ۲۲.۵ یا ۱۵.۶ باید از نوع عددی double، float و decimal استفاده کنیم. نوع عددی float برای مقادیر ممیز شناور با دقت کمتر و نوع عددی double برای مقادیر ممیز شناور با دقت بیشتر است به طوری که دقت double دو برابر float است. decimal یک دیتا تایپ ۱۲۸ بیتی است که در مقایسه با float و double از دقت بیشتر و بازه ی کمتری برخوردار است و این خاصیت آن باعث می‌شود که برای محاسبات پولی و مالی بسیار مناسب باشد.
نوع float سی و دو بیتی است و بازه ی اعداد آن را می‌توانید در جدول زیر مشاهده کنید:
[عکس: floatRange.jpg]
نوع دابل ۶۴ بیتی است و محدوده ی آن در جدول زیر مشخص است:
[عکس: doubleRange.jpg]
بازه ی تقریبی و دقت decimal را در جدول زیر می‌توانید مشاهده کنید:
[عکس: decimalRange.jpg]
سی شارپ شامل دو دسته بندی برای data type (نوع داده) است:
  • Value Type
  • Reference Type
 
تفاوت بین این دو، مقداری است که آن متغیر دارد. برای value type، متغیر یک مقدار واقعی را در خود نگه می‌دارد مثل: ۲۲ یا ۳۴۵.۶ اما برای Reference type، متغیر یک ارجاع به Value را در خود نگه می‌دارد که این اکثراً در کلاس مورد استفاده قرار می‌گیرد. در مورد Reference type بعداً بیشتر صحبت خواهیم کرد، فعلاً به value type می‌پردازیم.
در جدول زیر لیست کاملی از تمام value type ها را می‌بینید:
[عکس: valueTypes.jpg]
سی شارپ همچنین ۹ integer type را تعریف می‌کند که char، byte، sbyte، short، ushort، int، uint، long، ulong هستند و هرکدام بازه ی خاصی از اعداد را شامل می‌شوند. در جدول زیر بازه ی عددی و تعداد بیت هریک را می‌بینید. نوع char اصولاً به نمایندگی از کاراکتر استفاده می‌شود که در مقالات آینده در مورد آن صحبت خواهیم کرد:
[عکس: integerTypes.jpg]
در قسمت بعدی با چندین مثال به تشریح کامل‌تر مباحثی که در این‌جا به صورت تئوری بیان شد می‌پردازیم. همچنین فراموش نکنید که حتماً سوالات و مشکلات خود را در هر قسمت بیان کنید تا موضوع برای شما و دیگر خوانندگان عزیز قابل فهم‌‌تر شود. ضمناً، سعی کنید که حتماً اصطلاحات انگلیسی استفاده شده در این مقالات را یاد بگیرید چرا که برنامه نویسی اصطلاحات زیادی دارد و اکثراً واژه ی معادل فارسی ندارند یا در صورت داشتن، معادل فارسی آن‌ها آن‌چنان که باید مناسب نیست و ما ترجیح می‌دهیم که از واژه‌ و اصطلاحات اصلی آن‌ها استفاده کنیم.
(آخرین تغییر در ارسال: 12-08-2015، 05:10 PM توسط kianooshhosseini.)



به هم کمک کنیم تا بهتر یاد بگیریم! Heart Heart

راهنمایی درباره استفاده از سایت
تعرفه تبلیغات






#4
در قسمت سوم زنگ سی شارپ توضیحات مختصری در مورد value type، متغیر (variable) و عملگرها (operators) داده شد. در این قسمت با چند مثال به تشریح کامل‌تر آن‌ها خواهیم پرداخت. همان‌طور که در قسمت قبل گفته شد، data types به دو دسته ی value types و reference types تقسیم می‌شوند و دانستید که سیزده value types داریم.[عکس: cSharpTimeSession-04.jpg]در مجموع به این سیزده ولیو تایپ‌، simple types می‌گویند و دلیل این نامگذاری این است که این‌ها شامل مقدار تکی (singleValue) هستند و به عبارت دیگر، ترکیبی از دو یا بیشتر از دو مقدار نیستند. Float و Doubleبه مثال زیر توجه کنید:
12345678910111213141516171819 
[code]
using
[/code]
 
[code]
System;
[/code]
[code]
using
[/code]
 
[code]
System.Collections.Generic;
[/code]
[code]
using
[/code]
 
[code]
System.Linq;
[/code]
[code]
using
[/code]
 
[code]
System.Text;
[/code]
 
[code]
namespace
[/code]
 
[code]
ExFloat
[/code]
[code]
{
[/code]
[code]
    
[/code]
[code]
class
[/code]
 
[code]
Program
[/code]
[code]
    
[/code]
[code]
{
[/code]
[code]
        
[/code]
[code]
static
[/code]
 
[code]
void
[/code]
 
[code]
Main(
[/code]
[code]
string
[/code]
[code]
args)
[/code]
[code]
        
[/code]
[code]
{
[/code]
[code]
            
[/code]
[code]
int
[/code]
 
[code]
i = 25;
[/code]
[code]
            
[/code]
[code]
float
[/code]
 
[code]
f = 16.8F;
[/code]
[code]
            
[/code]
[code]
float
[/code]
 
[code]
result = i / f;
[/code]
 
[code]
            
[/code]
[code]
Console.WriteLine(
[/code]
[code]
"Result is: "
[/code]
 
[code]
+ result);
[/code]
[code]
        
[/code]
[code]
}
[/code]
[code]
    
[/code]
[code]
}
[/code]
[code]
}
[/code]
همان‌طور که مشاهده می‌کنید متغیر i مقدار ۲۵ را در خود ذخیره کرده است و متغیر f که از جنس float است مقدار ۱۶.۸ را در خود نگهداری می‌کند. نکته ی float اینجاست که باید بعد از آن از پسوند F یا f استفاده کنید:
1 
[code]
float
[/code]
 
[code]
f = 16.8F;
[/code]
دلیل اینکار این است که اعداد اعشاری به صورت پیش فرض double هستند و برای اینکه یک مقدار را به صورت float ذخیره کنید باید حتماً از پسوند F یا f استفاده کنید، در غیر این صورت کامپایلر  به شما پیغام خطا می‌دهد و به شما می‌گوید که نمی‌توانید یک مقدار از جنس double را در متغیری از جنس float ذخیره کنید.
1 
[code]
float
[/code]
 
[code]
result = i / f;
[/code]
در اینجا مقدار متغیر i را بر مقدار متغیر f تقسیم کردیم و نتیجه ی آن‌را در متغیری به اسم result که از جنس float است ذخیره ‌کردیم.
1 
[code]
Console.WriteLine(
[/code]
[code]
"Result is: "
[/code]
 
[code]
+ result);
[/code]
 در نهایت مقدار result را در خروجی نمایش دادیم:Result is: 1.488095اگر همین مثال را برای double انجام دهیم همان‌طور که در قسمت قبل گفته شد، خواهیم دید که دقت دابل بیشتر از float است:
12345678 
[code]
static
[/code]
 
[code]
void
[/code]
 
[code]
Main(
[/code]
[code]
string
[/code]
[code]
args)
[/code]
[code]
{
[/code]
[code]
    
[/code]
[code]
int
[/code]
 
[code]
i = 25;
[/code]
[code]
    
[/code]
[code]
double
[/code]
 
[code]
d = 16.8;
[/code]
[code]
    
[/code]
[code]
double
[/code]
 
[code]
result = i / d;
[/code]
 
[code]
    
[/code]
[code]
Console.WriteLine(
[/code]
[code]
"Result is: "
[/code]
 
[code]
+ result);
[/code]
[code]
}
[/code]
خروجی:Result is: 1.48809523809254Decimalیکی از موارد خیلی عالی در سی شارپ، تدارک دیدن نوع Decimal برای محاسبات مالی است. نوع دسیمال با بهره گیری از ۱۲۸ بیت برای نشان دادن مقادیر در محدوده‌ی ۲۸-۱۰ * ۱٫۰ و ۱۰۲۸ * ۷٫۹ استفاده می‌کند. در محاسبات معمولی ممیز شناور، خطاهای گرد کردن گوناگونی رخ می‌دهد. نوع دسیمال این خطاها را از بین می‌برد و دقیقاً تا ۲۸ رقم اعشار (در بعضی موارد ۲۹ رقم اعشار) را نشان می‌دهد. این توانایی نشان دادن مقادیر اعشاری بدون خطای گرد کردن، نوع Decimal را برای محاسبات پولی و مالی بسیار مناسب می‌کند. به دلیل اینکه مقادیر پولی در اپلیکیشن های تجاری بسیار با اهمیت هستند، بسیاری از برنامه نویسان سی شارپ اغلب برای این منظور از نوع Decimal استفاده می‌کنند. برای مشخص کردن اینکه عدد شما از نوع Decimal است، باید به عدد خود کاراکتر M (یا m) را اضافه کنید:
1 
[code]
decimal
[/code]
 
[code]
d = 12.30M;
[/code]
اینکار ضروری است چرا که در غیر این صورت مقدار متغیر به عنوان double تفسیر می‌شود (مقادیر اعشاری به صورت پیش‌فرض double هستند).در اینجا یک مثال برای شما در نظر گرفته ایم که با استفاده از نوع Decimal بتوانید قیمت نهایی را همراه با تخفیف، با توجه به قیمت اصلی و درصد تخفیف به دست آورید:
12345678910111213141516171819202122232425 
[code]
using
[/code]
 
[code]
System;
[/code]
[code]
using
[/code]
 
[code]
System.Collections.Generic;
[/code]
[code]
using
[/code]
 
[code]
System.Linq;
[/code]
[code]
using
[/code]
 
[code]
System.Text;
[/code]
 
[code]
namespace
[/code]
 
[code]
test
[/code]
[code]
{
[/code]
[code]
    
[/code]
[code]
class
[/code]
 
[code]
Program
[/code]
[code]
    
[/code]
[code]
{
[/code]
[code]
        
[/code]
[code]
static
[/code]
 
[code]
void
[/code]
 
[code]
Main(
[/code]
[code]
string
[/code]
[code]
args)
[/code]
[code]
        
[/code]
[code]
{
[/code]
[code]
            
[/code]
[code]
decimal
[/code]
 
[code]
price;
[/code]
[code]
            
[/code]
[code]
decimal
[/code]
 
[code]
discount;
[/code]
[code]
            
[/code]
[code]
decimal
[/code]
 
[code]
discountedPrice;
[/code]
 
[code]
            
[/code]
[code]
// Compute discounted price.
[/code]
[code]
            
[/code]
[code]
price = 19.95m;
[/code]
[code]
            
[/code]
[code]
discount = 0.15m;
[/code]
[code]
// discount rate is 15%
[/code]
 
[code]
            
[/code]
[code]
discountedPrice = price - (price * discount);
[/code]
 
[code]
            
[/code]
[code]
Console.WriteLine(
[/code]
[code]
"Discounted price: $"
[/code]
 
[code]
+ discountedPrice);
[/code]
[code]
        
[/code]
[code]
}
[/code]
[code]
    
[/code]
[code]
}
[/code]
[code]
}
[/code]
خروجی این برنامهBig Griniscounted price: $16.9575در این برنامه، در قسمتی که محاسبه تخفیف انجام می‌شود، الویت اول با پرانتزها است به طوری که ابتدا متغیر price در discount ضرب می‌شود، سپس حاصل آن از متغیر price کم می‌شود و در نهایت مقدار محاسبه شده ی نهایی در متغیر discountedPrice قرار می‌گیرد.دریافت ورودی از کاربربه مثال زیر که برای دریافت مقدار از ورودی است توجه کنید:
12345678910111213141516171819202122 
[code]
using
[/code]
 
[code]
System;
[/code]
[code]
using
[/code]
 
[code]
System.Collections.Generic;
[/code]
[code]
using
[/code]
 
[code]
System.Linq;
[/code]
[code]
using
[/code]
 
[code]
System.Text;
[/code]
 
[code]
namespace
[/code]
 
[code]
test
[/code]
[code]
{
[/code]
[code]
    
[/code]
[code]
class
[/code]
 
[code]
Program
[/code]
[code]
    
[/code]
[code]
{
[/code]
[code]
        
[/code]
[code]
static
[/code]
 
[code]
void
[/code]
 
[code]
Main(
[/code]
[code]
string
[/code]
[code]
args)
[/code]
[code]
        
[/code]
[code]
{
[/code]
[code]
            
[/code]
[code]
Console.Write(
[/code]
[code]
"Please enter your name: "
[/code]
[code]
);
[/code]
[code]
            
[/code]
[code]
string
[/code]
 
[code]
userName = Console.ReadLine();
[/code]
 
[code]
            
[/code]
[code]
Console.Write(
[/code]
[code]
"Please enter your surname: "
[/code]
[code]
);
[/code]
[code]
            
[/code]
[code]
string
[/code]
 
[code]
userSurname = Console.ReadLine();
[/code]
 
[code]
            
[/code]
[code]
Console.WriteLine(
[/code]
[code]
"Hi there, {0} {1}!"
[/code]
[code]
, userName, userSurname);
[/code]
[code]
            
[/code]
[code]
Console.WriteLine();
[/code]
[code]
        
[/code]
[code]
}
[/code]
[code]
    
[/code]
[code]
}
[/code]
[code]
}
[/code]
و خروجی با توجه به اسم و فامیل شما این‌چنین است:[عکس: gettingInput.jpg]در این مثال ما نام و نام خانوادگی کاربر را دریافت می‌کنیم و در نهایت یک پیغام خوش آمد‌ گویی به کاربر نمایش می‌دهیم. هدف از این مثال این است که شما بیاموزید چگونه یک مقدار (ورودی) را از کاربر دریافت کنید و چگونه آن را نمایش دهید و در صورت نیاز چه تغییراتی روی آن اعمال کنید.به توضیحات برنامه بالا توجه کنید:
1 
[code]
Console.Write(
[/code]
[code]
"Please enter your name: "
[/code]
[code]
);
[/code]
با این خط کد شما به کاربر یک پیغام را نمایش می‌دهید که نام خودش را وارد کند. کاربر نام خودش را وارد می‌کند ولی این نام وارد شده که مسلماً string (رشته ای از کاراکترها) است در کجا ذخیره می‌شود؟! پس شما باید یک مکان را برای گرفتن این مقدار آماده کنید. کامپیوتر در نهایت همه ی اطلاعات را در خانه های حافظه (Ram) ثبت می‌کند که به صورت باینری هستند. حتی برنامه نویسان کارکشته و باتجربه هم ترجیح می‌دهند به جای استفاده از باینری، مستقیماً از اعداد، متن و نوشته استفاده کنند. زبان‌های برنامه نویسی به شما اجازه می‌دهند که مکان‌های خاصی را برای نگهداری اطلاعات در حافظه بوجود بیاورید، این مکان‌های خاص همان متغیرها هستند که در قسمت قبل به شما معرفی کردیم.شما تا اینجا یک پیغام را به کاربر نمایش دادید که نام خودش را وارد کند و اکنون می‌خواهیم نام کاربر را دریافت و ذخیره کنیم، خط کد بعدی این کار را برای ما انجام می‌دهد:
1 
[code]
string
[/code]
 
[code]
userName = Console.ReadLine();
[/code]
در اینجا برای دریافت نام کاربر یک متغیر به اسم userName از جنس string تعریف کردیم تا نام کاربر را در آن ذخیره کنیم. اکنون ما نیاز داریم که این مقدار را از کاربر دریافت کنیم. دستور ()Console.ReadLine این کار را برای ما انجام می‌دهد و به این صورت عمل می‌کند که منتظر می‌ماند تا کاربر مقداری را در پنجره کنسول تایپ کند و به‌محض این‌که کاربر کلید Enter را فشرد، هرچه را که تایپ کرده در متغیر userName ذخیره می‌کند. در اینجا ما هم زمان هم متغیر را تعریف کردیم هم مقدار ورودی را در آن قرار دادیم، ولی می‌توانستیم ابتدا متغیر را تعریف کنیم، سپس مقدار ورودی را در آن قرار دهیم، بدین صورت:
12 
[code]
string
[/code]
 
[code]
userName;
[/code]
[code]
userName = Console.ReadLine();
[/code]
برای دریافت نام خانوادگی هم طبق همین روال پیش می‌رویم. همین‌طور که می‌بینید ما برای انتخاب نام متغیرها از userName برای اسم کاربر و از userSurname برای نام خانوادگی کاربر استفاده کردیم.یک‌سری قرارداد و راهنمایی برای نام گذاری وجود دارد که به شما کمک می‌کند چگونه یک نام بسیار مناسب را انتخاب کنید تا اگر در زمان آینده به برنامه ی خود برگشتید دچار سردرگمی نشوید و علاوه بر آن از یک خوش‌نویسی در زبان سی شارپ بهره ببرید، به چند نمونه از این قراردادها و راهنمایی ها توجه کنید:
  • از space و نقطه گذاری نمی‌توانید در انتخاب نام استفاده کنید.
  • از نام های ساده، خوانا و با معنی استفاده کنید.
  • خوانایی و با معنی بودن یک اسم را قربانی یک اسم کوتاه و عجیب و غریب نکنید.
  • از زیرخط، خط فاصله یا هر کاراکتری غیر از کارکترهای الفبایی استفاده نکنید.
  • از انتخاب اسم هایی که با کلمات کلیدی زبان برنامه نویسی تداخل دارند پرهیز کنید.
  • سی شارپ یک زبان case-sensitive است و اکثر برنامه نویسان به طور عمده از حروف کوچک برای نام‌گذاری متغیرها استفاده می‌کنند ولی اگر نام متغیر چند قسمتی باشد برای تمایز بین کلمات از حروف بزرگ استفاده می‌کنند برای مثال userName و userSurname که برای نام گذاری آن‌ها را انتخاب کردیم، دو قسمتی (دو کلمه ای) هستند و userName از دو کلمه‌ی user و name تشکیل شده است که برای تمایز بین آن‌ها حرف N را بزرگ نوشته ایم و هر کلمه ای که به این اسم بخواهد اضافه شود حرف اول آن باید بزرگ باشد.
1 
[code]
Console.WriteLine(
[/code]
[code]
"Hi there, {0} {1}!"
[/code]
[code]
, userName, userSurname);
[/code]
اگر شما این خط کد را با خروجی مقایسه کنید متوجه خواهید شد که چه اتفاقی افتاده است. رشته‌ی ” ,Hi there” در خروجی نمایش داده می‌شود و نام کاربر به جای {۰} قرار می‌گیرد و نام خانوادگی کاربر در قسمت {۱} واقع می‌شود. اگر شما بخواهید مقدار یک متغیر را در خروجی همراه یک پیغام نمایش دهید می‌توانید متغیر را با یک عدد در کروشه جایگزین کنید. کامپیوتر شمارش را از عدد صفر شروع می‌کند بنابراین userName متغیر شماره صفر می‌شود و مقدار آن در خروجی چاپ می‌شود همچنین userSurname متغیر شماره یک است. همان‌طور که می‌بینید بعد از string نام متغیرهایی را که می‌خواهیم مقدار آن‌ها همراه با پیغام خوش آمد‌ گویی نمایش داده شود، می‌نویسیم و به ترتیب userName به جای {۰} و userSurname به جای {۱} قرار گرفته می‌شود. اگر توجه کرده باشید همین کار را با استفاده از علامت + هم می‌توانستیم انجام دهیم که بدین صورت می‌شد:
1 
[code]
Console.WriteLine(
[/code]
[code]
"Hi there, "
[/code]
 
[code]
+ userName +
[/code]
[code]
" "
[/code]
 
[code]
+ userSurname +
[/code]
[code]
"!"
[/code]
 
[code]
);
[/code]
همان‌طور که می‌بینید توسط علامت + متغیرها را به رشته ها متصل کردیم.دستور آشنای آخر:
1 
[code]
Console.WriteLine();
[/code]
این دستور وقتی به این صورت و بدون هیچ ورودی استفاده شود تنها یک خط خالی را چاپ می‌کند و معمولاً برای اینکه خروجی ها خواناتر باشند استفاده می‌شود. 
(آخرین تغییر در ارسال: 22-03-2015، 02:22 PM توسط kianooshhosseini.)



به هم کمک کنیم تا بهتر یاد بگیریم! Heart Heart

راهنمایی درباره استفاده از سایت
تعرفه تبلیغات






#5
در قسمت قبل در مورد Floating-Point Data Types و چگونگی دریافت مقدار از کاربر و چند نکته ی دیگر، توضیحاتی داده شد. در این قسمت به توضیح دیتا تایپ‌های char و bool خواهیم پرداخت. کاراکتر و بولین دو بحث پایه ای و مهم در برنامه نویسی هستند که کابردهای اساسی و مهمی دارند.
[عکس: cSharpTimeSession-05.jpg]
 
کاراکترها (Characters)
در سی شارپ از دیتا تایپ char برای نگهداری هر کاراکتری می‌توان استفاده کرد. در متغیری از جنس char شما می‌توانید کاراکترهای تکی (Single Character) را نگهداری کنید. سی شارپ بر اساس استاندارد یونی کد از ۱۶ بیت برای نمایش کاراکترها استفاده می‌کند، در صورتی که اکثر زبان‌های دیگر از ۸ بیت استفاده می‌کنند، مثل ++C و این می‌تواند مشکل ساز شود زیرا بعضی از حروف الفبایی را (مثل زبان چینی) نمی‌توان در ۸ بیت نمایش داد. این ویژگی سی شارپ باعث می‌شود بتوانید مقادیر جالبی را با فرمت یونی کد تولید کنید. برای مثال حروف الفبای خارجی که برای نمایش آن‌ها باید از کاراکتر استفاده کرد مثل حروف یونانی، عبری، چینی و آلمانی همچنین علامت‌های خاص از جمله علامت‌های پول‌های خارجی، علامت‌های ریاضی، اشکال هندسی و غیره که در صفحه کلید استاندارد موجود نیستند اما با استاندارد یونی کد قابل دسترسی هستند.
مقادیر کاراکتر را باید بین علامت single quotation (سینگل کوتیشن ‘ ‘) قرار داد، بدلیل اینکه کامپیوتر برای نگهداری مقادیر character و integer تفاوت قائل می‌شود.
برای مثال هر دو عبارت زیر درست هستند:
[align=right !important]1[/align][align=right !important]2[/align] [code]
char
[/code]

[code]
aCharValue =
[/code]
[code]
'9'
[/code]
[code]
;
[/code]
[code]
int
[/code]

[code]
aNumValue = 9;
[/code]
در صورتیکه هر دو عبارت زیر نادرست هستند:
[align=right !important]1[/align][align=right !important]2[/align][align=right !important]3[/align] [code]
char
[/code]

[code]
aCharValue = 9;
[/code]
[code]
int
[/code]

[code]
aNumValue =
[/code]
[code]
'9'
[/code]
[code]
;
[/code]
[code]
// error, won't work
[/code]
یک عدد می‌تواند یک کاراکتر باشد، که در اینصورت باید بین single quotation قرار بگیرد و نوع آن هم char باشد. همچنین یک حرف الفبایی نمی‌تواند در متغیری از نوع عددی قرار بگیرد.
چند نمونه:
[align=right !important]1[/align][align=right !important]2[/align][align=right !important]3[/align] [code]
char
[/code]

[code]
myInitial =
[/code]
[code]
'J'
[/code]
[code]
;
[/code]
[code]
char
[/code]

[code]
percentSign =
[/code]
[code]
'%'
[/code]
[code]
;
[/code]
[code]
char
[/code]

[code]
numThatIsAChar =
[/code]
[code]
'9'
[/code]
[code]
;
[/code]
کاراکترها را می‌توان در خروجی نمایش داد:
[align=right !important]1[/align][align=right !important]2[/align][align=right !important]3[/align][align=right !important]4[/align][align=right !important]5[/align][align=right !important]6[/align] [code]
static
[/code]

[code]
void
[/code]

[code]
Main(
[/code]
[code]
string
[/code]
[code]
[] args)
[/code]
[code]
{
[/code]
[code]
    
[/code]
[code]
char
[/code]

[code]
ch;
[/code]
[code]
    
[/code]
[code]
ch =
[/code]
[code]
'X'
[/code]
[code]
;
[/code]
[code]
    
[/code]
[code]
Console.WriteLine(
[/code]
[code]
"This is a ch: "
[/code]

[code]
+ ch);
[/code]
[code]
}
[/code]
شما می‌توانید هر کاراکتری از جمله کاراکترهایی مثل backspace و tab را ذخیره کنید. برای ذخیره ی این نوع کاراکترها (Escape Sequence) از دو علامت استفاده می‌شود که همیشه اولین آن‌ها علامت backslash است. این جفت علامت، یک کاراکتر را نمایش می‌دهند. برای مثال کد زیر، کاراکتر backspace و کاراکتر tab را به ترتیب در متغیرهای aBackSpaceChar و aTabChar ذخیره می‌‌کند:
[align=right !important]1[/align][align=right !important]2[/align] [code]
char
[/code]

[code]
aBackspaceChar =
[/code]
[code]
'\b'
[/code]
[code]
;
[/code]
[code]
char
[/code]

[code]
aTabChar =
[/code]
[code]
'\t'
[/code]
[code]
;
[/code]
در این مثال، escape sequence یک مقدار را برای هر کاراکتر (یک backspace و یک tab به‌جای حروف b و t) نشان می‌دهد.
جدول زیر برخی از escape sequence های رایج در سی شارپ را نشان می‌دهد.
[عکس: escapeSequence.jpg]
متغیری از جنس char تنها یک کاراکتر را در خود نگه می‌دارد. برای اینکه رشته ای از کاراکترها را داشته باشید (مثل نام شخصی خودتان) باید از string استفاده کنید. در طول انجام مثال‌ها با نحوه ی استفاده از char و اینکه در چه مواردی استفاده دارد بیشتر آشنا خواهید شد.
بولین (The bool Type)
دیتا تایپ bool یک منطق بولی (بولین – Boolean) است که بر پایه ی این دو مقدار است: false و true. یک متغیر از جنس int می‌تواند میلیون‌ها مقدار مختلف در زمان‌های مختلف را در خود ذخیره کند ولی متغیری از جنس bool تنها می‌تواند یکی از این دو مقدار را در خود نگه دارد: true یا false. برای اعلام یک متغیر بولین باید از کلمه کلیدی bool استفاده کنید.
مثال زیر دو مقدار را در دو متغیر از جنس bool ذخیره می‌کند:
[align=right !important]1[/align][align=right !important]2[/align] [code]
bool
[/code]

[code]
isItMonday =
[/code]
[code]
false
[/code]
[code]
;
[/code]
[code]
bool
[/code]

[code]
areYouTired =
[/code]
[code]
true
[/code]
[code]
;
[/code]
شما همچنین می‌توانید بر اساس نتیجه ی مقایسه ی دو مقدار، مقدار true یا false را در یک متغیر بولین قرار دهید. عملگرهای مقایسه ای دو آیتم را با هم مقایسه می‌کنند، یک عبارت که شامل عملگر مقایسه ای است، یک مقدار بولین دارد.
جدول زیر ۶ عملگر مقایسه ای که سی شارپ پشتیبانی می‌کند را نشان می‌دهد:
[عکس: comparisonOperators.jpg]
هنگامی که شما از عملگرهای مقایسه ای که دارای دو علامت هستند (=>، =<، =!، ==) استفاده می‌کنید، نمی‌توانید بین دو علامت از space استفاده کنید و توجه داشته باشید که علامت = همیشه در سمت راست است.
به مثال زیر توجه کنید:
[align=right !important]1[/align][align=right !important]2[/align][align=right !important]3[/align][align=right !important]4[/align][align=right !important]5[/align][align=right !important]6[/align][align=right !important]7[/align][align=right !important]8[/align] [code]
static
[/code]

[code]
void
[/code]

[code]
Main(
[/code]
[code]
string
[/code]
[code]
[] args)
[/code]
[code]
{
[/code]
[code]
    
[/code]
[code]
bool
[/code]

[code]
isSixBigger = 6 > 5;
[/code]
[code]
// Value stored would be true
[/code]
[code]
    
[/code]
[code]
bool
[/code]

[code]
isSevenSmallerOrEqual = 7 <= 4;
[/code]
[code]
// Value stored would be false
[/code]
[code]
            
[/code]
 
[code]
    
[/code]
[code]
Console.WriteLine(isSixBigger);
[/code]
[code]
    
[/code]
[code]
Console.WriteLine(isSevenSmallerOrEqual);
[/code]
[code]
}
[/code]
در این مثال دو عدد با هم مقایسه می‌شوند و حاصل آن‌ها که یا true است یا false، در متغیر بولین قرار داده می‌شود. هرچند این روش مقدار دهی به متغیرهای بولین تا حدودی بلا استفاده است ولی برای مثال و یادگیری در اینجا مناسب است. استفاده از مقادیر بولین زمانی معنای بهتری پیدا می‌کند که شما از متغیرها بجای اعداد ثابت در مقایسه ها استفاده کنید.
به مثال زیر توجه کنید:
[align=right !important]1[/align][align=right !important]2[/align][align=right !important]3[/align][align=right !important]4[/align][align=right !important]5[/align][align=right !important]6[/align][align=right !important]7[/align][align=right !important]8[/align][align=right !important]9[/align][align=right !important]10[/align][align=right !important]11[/align] [code]
static
[/code]

[code]
void
[/code]

[code]
Main(
[/code]
[code]
string
[/code]
[code]
[] args)
[/code]
[code]
{
[/code]
[code]
    
[/code]
[code]
int
[/code]

[code]
hoursWorked = 45;
[/code]
[code]
    
[/code]
[code]
int
[/code]

[code]
annualIncome = 80000;
[/code]
 
[code]
    
[/code]
[code]
bool
[/code]

[code]
doesEmployeeReceiveOvertime = hoursWorked > 40;
[/code]
[code]
    
[/code]
[code]
bool
[/code]

[code]
isEmployeeInHighTaxBracket = annualIncome > 100000;
[/code]
 
[code]
    
[/code]
[code]
Console.WriteLine(doesEmployeeReceiveOvertime);
[/code]
[code]
    
[/code]
[code]
Console.WriteLine(isEmployeeInHighTaxBracket);
[/code]
[code]
}
[/code]
در بولین اول این برنامه متغیر hoursWorked با مقدار ثابت ۴۰ مقایسه می‌شود، اگر مقدار hoursWorked کمتر از ۴۰ باشد پس مقدار متغیر doesEmployeeReceiveOvertime برابر با false می‌شود، در غیر اینصورت برابر با true می‌شود.
در بولین بعدی، متغیر annualIncome باید مقداری بیشتر از ۱۰۰۰۰۰ را داشته باشد تا متغیر isEmployeeInHighTaxBracket برابر با true شود.
نکته ی مهم: توجه داشته باشید که علامت انتساب یک “تک مساوی” است و علامت مقایسه‌ی دو مقدار “دومساوی” است.
به مثال زیر توجه کنید:
[align=right !important]1[/align][align=right !important]2[/align][align=right !important]3[/align][align=right !important]4[/align][align=right !important]5[/align][align=right !important]6[/align][align=right !important]7[/align][align=right !important]8[/align][align=right !important]9[/align][align=right !important]10[/align][align=right !important]11[/align][align=right !important]12[/align][align=right !important]13[/align][align=right !important]14[/align][align=right !important]15[/align][align=right !important]16[/align][align=right !important]17[/align][align=right !important]18[/align][align=right !important]19[/align][align=right !important]20[/align][align=right !important]21[/align][align=right !important]22[/align] [code]
using
[/code]

[code]
System;
[/code]
[code]
using
[/code]

[code]
System.Collections.Generic;
[/code]
[code]
using
[/code]

[code]
System.Linq;
[/code]
[code]
using
[/code]

[code]
System.Text;
[/code]
 
[code]
namespace
[/code]

[code]
test
[/code]
[code]
{
[/code]
[code]
    
[/code]
[code]
class
[/code]

[code]
Program
[/code]
[code]
    
[/code]
[code]
{
[/code]
[code]
        
[/code]
[code]
static
[/code]

[code]
void
[/code]

[code]
Main(
[/code]
[code]
string
[/code]
[code]
[] args)
[/code]
[code]
        
[/code]
[code]
{
[/code]
[code]
            
[/code]
[code]
bool
[/code]

[code]
b;
[/code]
[code]
            
[/code]
[code]
b =
[/code]
[code]
false
[/code]
[code]
;
[/code]
[code]
            
[/code]
[code]
Console.WriteLine(
[/code]
[code]
"b is "
[/code]

[code]
+ b);
[/code]
[code]
            
[/code]
[code]
b =
[/code]
[code]
true
[/code]
[code]
;
[/code]
[code]
            
[/code]
[code]
Console.WriteLine(
[/code]
[code]
"b is "
[/code]

[code]
+ b);
[/code]
 
[code]
            
[/code]
[code]
Console.WriteLine(
[/code]
[code]
"10 > 9 is "
[/code]

[code]
+ (10 > 9));
[/code]
[code]
            
[/code]
[code]
Console.WriteLine(
[/code]
[code]
"10 == 9 is "
[/code]

[code]
+ (10 == 9));
[/code]
[code]
        
[/code]
[code]
}
[/code]
[code]
    
[/code]
[code]
}
[/code]
[code]
}
[/code]
خروجی:
b is false
b is true
10 > 9 is true
10 == 9 is false
همان‌طور که می‌بینید هنگامی که مقدار بولین در خروجی توسط ()Console.WriteLine نمایش داده می‌شود، مقدار آن یا بصورت True نمایش داده می‌شود یا False. همین‌طور (۱۰ > ۹) و (۱۰ == ۹) شامل مقدار بولی هستند.



به هم کمک کنیم تا بهتر یاد بگیریم! Heart Heart

راهنمایی درباره استفاده از سایت
تعرفه تبلیغات










کاربران در حال بازدید این موضوع: 1 مهمان


درباره ما

شعار ما :"با هم بهتر یاد می گیریم"

وبسایت رسم بنفش محلی برای یادگیری از همدیگر می باشد.آنچه را میدانیم به هم بیاموزیم

دوستان ما
  • سایتهای مفید
  • کپی رایت

    کپی رایت 1393-1394.تمامی حقوق محفظ است.
    محتوا تحت لیسانس کریتیو کامنزمنتشر می شوند.
    طراحی قالب برای IP.B را سعید نظری و تبدیل آن به قالب mybb را ایمان یزدانی و تغییرات انجام شده برای بهبود تجربه کاربری را کیانوش حسینی قلعه بین انجام داده است.