من از منوی فایل گزینه new project را زدم و console application را از قسمت سی شارپ زدم. طبق آموزش زیر:
http://dev.ir/articles/show.asp?id=177
و بعد این برنامه خودکار برای من ساخته شد:
کد:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
}
}
}
بعد طبق آن آموزش دستوری را افزودم:
کد:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello C#!");
}
}
}
یعنی این خط اضافه شد:
Console.WriteLine("Hello C#!");
که کارش چاپ hello c# است.
حالا مشکل این است که برنامه زود بسته می شود بعد اجرا که یک خط اضافه می کنیم تا بسته نشود. راستش اولین سئوالم این بود که این خط کد چیه ولی در همین صفحه گفته بود.
کد:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello C#!");
Console.ReadLine(); // pause screen!
}
}
}
حالا بعد چاپ جمله اگر اینتر را بزینم برنامه خاتمه می یابد
از همین سایت انواع متغیر:
================
نوع هاي داده اي پايه ي زير در در سي شارپ به صورت پيش فرض مهيا هستند:
object : نوعي است نامحدود كه مي تواند تمام انواع ديگر را نيز شامل شود. مثال :
object = null;
string : رشته ؛ در اينجا يك رشته توالي كاراكترهاي يونيكد مي باشد. مثال :
string s= "hello";
sbyte : نوع داده ايي صحيح 8 بيتي علامت دار.
byte : نوع داده ايي صحيح 8 بيتي بدون علامت. مثال :
sbyte val = 12;
short : نوع داده ايي صحيح 16 بيتي علامت دار.
ushort : نوع داده ايي صحيح 16 بيتي بدون علامت. مثال :
short val = 12;
int : نوع داده ايي صحيح 32 بيتي علامت دار.
unit : نوع داده ايي صحيح 32 بيتي بدون علامت. مثال :
int val = 12;
long : نوع داده ايي صحيح 64 بيتي علامت دار.
ulong : نوع داده ايي صحيح 64 بيتي بدون علامت. مثال :
Long val1 = 12; long val2 = 34L;
كلا در اينجا u به معناي unsigned است.
float : نوع اعشاري با single precision .
double : نوع اعشاري با double precision . مثال :
float val = 1.23f;
bool : نوع داده ايي Boolean كه مي تواند true و يا false باشد. مثال :
Bool val = true;
char : كاراكتر، دراينجا char يك كاراكتر يونيكد است.
char val = 'h';
به نحوه ي تعريف كاراكتر ها و همچنين رشته ها در سي شارپ دقت كنيد.
decimal : نوع داده ايي دسيمال با 28 رقم معني دار.
decimal val = 1.23M;
================
نکته:
ابتدا نوع متغير و سپس نام متغير و در آخر يك سمي كولون بكار برده مي شود. براي مثال :
int a;
كه در اينجا متغير a بعنوان يك متغير حاوي اعداد صحيح تعريف شده است.
نكته ي مهمي كه در اينجا حائز اهميت است ، مقدار دهي اوليه ي متغيرها مي باشد. در غير اينصورت كامپايلر سي شارپ برنامه را بايك خطا متوقف مي كند. دليل اين امر هم اين است كه از استفاده از متغيرهاي بدون مقدار در طول برنامه جلوگيري شود تا ميزان خطاهاي در حين اجرا كاهش يابد.
================
برنامه بعدی این سایت:
کد:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int intVar1 = 0;
int intVar2;
intVar2 = 1;
int intV3 = 15, intV4 = 12;
string strText1 = "abcd";
Console.WriteLine(
"The value for variables are : \n intVar1=" + intVar1 +
"\n intVar2=" + intVar2 +
"\n intV3=" + intV3 +
"\n intV4=" + intV4 +
"\n strText1=" + strText1);
Console.WriteLine("\n\n Press inter to terminate");
Console.ReadLine(); // pause screen!
}
}
}
که آمده متغیرهایی تعریف کرده و چاپ کرده. متغیر intvar2 چرا مقدار اولیه داده نشده. مگر قرار نبود همه متغیرها مقدار دهی شوند؟ منظور از مقدار دهی اولیه چیه؟ در سی که مقدار نمی دادیم خطا نمی گرفت. اینجا کی خطا می گیره اگر مقدار ندهیم؟
نتیجه اجرا:
برای جزئیات بیشتر اگر در شرح کدها مشکلی بود به سایت اصلی که در پست اول لینکش بود مراجعه کنید. مثل معنی کامنت - کار \n و یا چگونگی اجرا کردن برنامه و غیره.
اگر يك سري از مفاهيم آنرا متوجه نمي شويد اصلا مهم نيست! در مقالات آتي تمام اين موارد مفصل توضيح داده خواهند شد.
متد استاندارد Main در اينجا قسمتي است كه عمليات اصلي برنامه در حالت Console ( شبيه به برنامه هاي تحت داس اما 32 بيتي ) در آن انجام مي شود.
بدون متد Main برنامه هاي سي شارپ قادر به اجرا نخواهند بود. نوع آن در اينجا void تعريف شده است يعني اين متد خروجي ندارد. حتي اگر برنامه هاي استاندارد ويندوز را هم بخواهيد با C# بنويسيد بازهم متد Main حضور خواهد داشت ، هر چند به صورت خودكار ويژوال استوديو آنرا توليد مي كند.
طريقه ي نوشتن توضيحات (Comments) در سي شارپ همانند C++ مي باشد يعني :
/* any comments */
ويا
// any comments
و تنها برنامه نويس براي نوشتن توضيحاتي در مورد كدهاي خود از آنها استفاده مي كند و در خروجي برنامه ظاهر نمي شوند.
نكاتي در مورد كد فوق:
- بك اسلش ان ، در زبانهاي مشتق شده از سي به معناي new line مي باشد.
- در كد فوق نحوه ي تعريف چند متغير در يك خط و حالتهاي مقدار دهي مختلف را ملاحظه مي كنيد.
- از متد ReadLine براي نگه داشتن خروجي و مشاهده ي آن در اينجا استفاده كرديم.
- عادت كنيد به صورت دندانه دار كد بنويسيد. اينكار خوانايي كد را صد برابر مي كند. در اينجا كدهاي داخل متد main ، كاملا چند دندانه از آكولادهاي باز و بسته كردن آن جلو تر هستند.
- در كد بالا در متد WriteLine اعداد و رشته ها با هم جمع شده اند! اين مورد بدليل وجود overload هاي زياد اين تابع و ... ميسر گشته است. اصلا به آن دل نبنديد! چون در آينده كامپايلر سي شارپ اگر چنين اعمالي را در جاهاي ديگري مرتكب شويد به شدت با شما برخورد خواهد كرد!! براي جمع كردن اعداد با رشته ها حتما بايد عدد به رشته تبديل گردد و بعد ... . در اين مورد در مقالات بعدي بحث خواهد گرديد.
بهتر است هنگام تعريف يك متغير ، نامي با مسما براي آن انتخاب شود تا در هنگام كار خواندن كد ساده تر گردد. همچنين رسم شده است كه نوع متغير را به صورت خلاصه به نام متغير اضافه مي كنند. براي مثال بجاي FirstName بهتر است بنويسيم strFirstName . به اين نوع نگارش Hungarian notation مي گويند.
- تمام نوع هاي پيش فرض تعريف شده در سي شارپ شيء هستند.
این سایت منبع خود را
http://www.irandevelopers.com اعلام کرده.
=================
دو سئوال این پست - پست قبل سئوال نداشت.
اول اینکه تا چه زمانی مقدار اولیه ندهیم به متغیر خطا می دهد؟
دوم اینکه چرا می گویند سی شارپ نقش محوری دارد در میان بقیه زبانهای دات نت. به نقل از این سایت و خیلی سایتهای فارسی دیگر.