<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>سی شارپ #C | حمیدرضا بابازاده</title>
	<atom:link href="https://hamidrezababazadeh.ir/tag/%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-c/feed/" rel="self" type="application/rss+xml" />
	<link>https://hamidrezababazadeh.ir</link>
	<description>مشاور و مدرس دوره‌های SQL Server, SSIS, SSAS, Power BI</description>
	<lastBuildDate>Sat, 27 Apr 2019 17:47:16 +0000</lastBuildDate>
	<language>fa-IR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.5</generator>

<image>
	<url>https://hamidrezababazadeh.ir/wp-content/uploads/cropped-photo477114607265229875-e1477042263519-32x32.jpg</url>
	<title>سی شارپ #C | حمیدرضا بابازاده</title>
	<link>https://hamidrezababazadeh.ir</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>درس پنجم &#8211; متغیرهای ＃C</title>
		<link>https://hamidrezababazadeh.ir/%d8%af%d8%b1%d8%b3-%d9%be%d9%86%d8%ac%d9%85-%d9%85%d8%aa%d8%ba%db%8c%d8%b1%d9%87%d8%a7%db%8c-%ef%bc%83c/</link>
					<comments>https://hamidrezababazadeh.ir/%d8%af%d8%b1%d8%b3-%d9%be%d9%86%d8%ac%d9%85-%d9%85%d8%aa%d8%ba%db%8c%d8%b1%d9%87%d8%a7%db%8c-%ef%bc%83c/#respond</comments>
		
		<dc:creator><![CDATA[حمیدرضا بابازاده]]></dc:creator>
		<pubDate>Sat, 27 Apr 2019 08:46:03 +0000</pubDate>
				<category><![CDATA[آموزش #C]]></category>
		<category><![CDATA[مفاهیم مقدماتی سی شارپ]]></category>
		<category><![CDATA[آموزش برنامه نویسی]]></category>
		<category><![CDATA[آموزش سی شارپ]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[سی شارپ]]></category>
		<category><![CDATA[سی شارپ #C]]></category>
		<category><![CDATA[سی شارپ، #C]]></category>
		<guid isPermaLink="false">http://hamidrezababazade.com/?p=816</guid>

					<description><![CDATA[<p>یک متغیر فقط یک نام ذخیره‌شده در حافظه است که برنامه‌ی می‌تواند آن‌ها را دست‌کاری کند. هر متغیر در#C یک نوع مشخص دارد که اندازه و طرح‌بندی حافظه متغیر، محدوده مقداری که می‌تواند در آن حافظه ذخیره کند و مجموعه عملیاتی که می‌توان به متغیر اعمال کرد را تعیین می‌کند.</p>
The post <a href="https://hamidrezababazadeh.ir/%d8%af%d8%b1%d8%b3-%d9%be%d9%86%d8%ac%d9%85-%d9%85%d8%aa%d8%ba%db%8c%d8%b1%d9%87%d8%a7%db%8c-%ef%bc%83c/">درس پنجم – متغیرهای ＃C</a> first appeared on <a href="https://hamidrezababazadeh.ir">حمیدرضا بابازاده</a>.]]></description>
										<content:encoded><![CDATA[<p>یک متغیر نام بخشی از حافظه است که برنامه‌ی می‌تواند اطلاعات آن‌ را دست‌کاری کند. هر متغیر در#C یک نوع مشخص دارد که اندازه و طرح‌بندی حافظه متغیر، محدوده مقداری که می‌تواند در آن حافظه ذخیره کند و مجموعه عملیاتی که می‌توان به متغیر اعمال کرد را تعیین می‌کند.</p>



<p>نوع مقداری پایه ارائه ‌شده در #C می‌تواند به شکل زیر طبقه‌ بندی شوند.</p>



<figure class="wp-block-image"><img fetchpriority="high" decoding="async" width="623" height="231" src="http://hamidrezababazade.com/wp-content/uploads/image-22.png" alt="" class="wp-image-817" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-22.png 623w, https://hamidrezababazadeh.ir/wp-content/uploads/image-22-300x111.png 300w" sizes="(max-width: 623px) 100vw, 623px" /></figure>



<p>＃C همچنین اجازه تعریف متغیرهای نوع مقداری دیگر مانند enum و متغیرهای نوع ارجاعی مانند class را می دهد که در فصل های بعدی توضیح خواهیم داد.</p>



<h3 class="wp-block-heading"><strong>تعریف متغیر</strong></h3>



<p>قاعده  تعریف متغیر در #C به شرح زیر است:</p>



<figure class="wp-block-image"><img decoding="async" width="623" height="27" src="http://hamidrezababazade.com/wp-content/uploads/image-23.png" alt="" class="wp-image-818" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-23.png 623w, https://hamidrezababazadeh.ir/wp-content/uploads/image-23-300x13.png 300w" sizes="(max-width: 623px) 100vw, 623px" /></figure>



<p>در اینجا، (data_type) باید یک نوع داده معتبر در #C مثل char, int, float, double و یا هر دیتا تایپ تعیین شده توسط کاربر باشد و (variable_list) می تواند از یک یا چند نام شناسه جدا شده توسط کاما (,) تشکیل شود.</p>



<p>چند تعریف متغیر معتبر در اینجا نشان داده شده است.</p>



<figure class="wp-block-image"><img decoding="async" width="623" height="67" src="http://hamidrezababazade.com/wp-content/uploads/image-24.png" alt="" class="wp-image-819" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-24.png 623w, https://hamidrezababazadeh.ir/wp-content/uploads/image-24-300x32.png 300w" sizes="(max-width: 623px) 100vw, 623px" /></figure>



<p>شما می توانید مقداردهی متغیر را در زمان تعریف به این شکل انجام دهید:</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="624" height="26" src="http://hamidrezababazade.com/wp-content/uploads/image-25.png" alt="" class="wp-image-820" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-25.png 624w, https://hamidrezababazadeh.ir/wp-content/uploads/image-25-300x13.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<h3 class="wp-block-heading"><strong>مقداردهی متغیرها</strong></h3>



<p>مقداردهی (اختصاص دادن مقدار) متغیرها با یک علامت مساوی و بعد از آن یک عبارت ثابت انجام می شود.</p>



<p>شکل عمومی مقداردهی به شرح زیر است:</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="623" height="26" src="http://hamidrezababazade.com/wp-content/uploads/image-26.png" alt="" class="wp-image-821" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-26.png 623w, https://hamidrezababazadeh.ir/wp-content/uploads/image-26-300x13.png 300w" sizes="(max-width: 623px) 100vw, 623px" /></figure>



<p>متغیرها می توانند در زمان تعریف خود، مقداردهی شوند. مقدار دهنده شامل یک علامت مساوی و پس از آن عبارت ثابت هستند؛ مانند عکس زیر:</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="624" height="26" src="http://hamidrezababazade.com/wp-content/uploads/image-27.png" alt="" class="wp-image-822" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-27.png 624w, https://hamidrezababazadeh.ir/wp-content/uploads/image-27-300x13.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p>در زیر چند نمونه آمده است:</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="624" height="67" src="http://hamidrezababazade.com/wp-content/uploads/image-28.png" alt="" class="wp-image-823" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-28.png 624w, https://hamidrezababazadeh.ir/wp-content/uploads/image-28-300x32.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p>این یک روش برنامه‌ نویسی خوب برای مقداردهی مناسب متغیرها می باشد، در غیر این صورت بعضی مواقع برنامه ممکن است نتیجه غیر منتظره ای را ایجاد کند.</p>



<p>در مثال زیر از انواع مختلف متغیرها استفاده شده است:</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="624" height="278" src="http://hamidrezababazade.com/wp-content/uploads/image-29.png" alt="" class="wp-image-824" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-29.png 624w, https://hamidrezababazadeh.ir/wp-content/uploads/image-29-300x134.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p>وقتی کد بالا کامپایل و اجرا می شود، نتیجه زیر را به دست می آورد.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="623" height="27" src="http://hamidrezababazade.com/wp-content/uploads/image-30.png" alt="" class="wp-image-825" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-30.png 623w, https://hamidrezababazadeh.ir/wp-content/uploads/image-30-300x13.png 300w" sizes="(max-width: 623px) 100vw, 623px" /></figure>



<h3 class="wp-block-heading"><strong>پذیرش مقدار از کاربر</strong><strong></strong></h3>



<p>کلاس Console در فضای نام System، برای پذیرش ورودی از کاربر و ذخیره آن در متغیر، تابع   () Console.ReadLine را ارائه می دهد.</p>



<p>برای مثال:</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="624" height="40" src="http://hamidrezababazade.com/wp-content/uploads/image-31.png" alt="" class="wp-image-826" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-31.png 624w, https://hamidrezababazadeh.ir/wp-content/uploads/image-31-300x19.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p>تابع () Convert.ToInt32، اطلاعات وارد شده توسط کاربر را به دیتا تایپ int تبدیل می کند، زیرا  () Console.ReadLine اطلاعات را با فرمت رشته ای قبول می کند.</p>



<h3 class="wp-block-heading"><strong>عبارات Lvalue و Rvalue در #C</strong></h3>



<p>دو نوع عبارت در #C وجود دارد:</p>



<ul><li>Lvalue: عبارتی که یک Lvalue است می تواند در سمت چپ یا راست یک assignment ظاهر شود.</li><li>Rvalue: عبارتی
که یک Rvalue است می تواند در سمت راست یک assignment ظاهر شود، اما نمی
تواند در سمت چپ آن ظاهر شود.</li></ul>



<p>متغیرها lvalue هستند، از این رو می توانند در سمت چپ یک assignment = ظاهر شوند. لیترال عددی rvalue هستند از این رو نمی توانند در سمت چپ ظاهر شوند. در ادامه یک دستور معتبر در #C آمده است.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="624" height="27" src="http://hamidrezababazade.com/wp-content/uploads/image-32.png" alt="" class="wp-image-827" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-32.png 624w, https://hamidrezababazadeh.ir/wp-content/uploads/image-32-300x13.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p>اما دستور زیر معتبر نیست و خطای compile-time را به همراه دارد.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="623" height="23" src="http://hamidrezababazade.com/wp-content/uploads/image-33.png" alt="" class="wp-image-828" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-33.png 623w, https://hamidrezababazadeh.ir/wp-content/uploads/image-33-300x11.png 300w" sizes="(max-width: 623px) 100vw, 623px" /></figure>The post <a href="https://hamidrezababazadeh.ir/%d8%af%d8%b1%d8%b3-%d9%be%d9%86%d8%ac%d9%85-%d9%85%d8%aa%d8%ba%db%8c%d8%b1%d9%87%d8%a7%db%8c-%ef%bc%83c/">درس پنجم – متغیرهای ＃C</a> first appeared on <a href="https://hamidrezababazadeh.ir">حمیدرضا بابازاده</a>.]]></content:encoded>
					
					<wfw:commentRss>https://hamidrezababazadeh.ir/%d8%af%d8%b1%d8%b3-%d9%be%d9%86%d8%ac%d9%85-%d9%85%d8%aa%d8%ba%db%8c%d8%b1%d9%87%d8%a7%db%8c-%ef%bc%83c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>درس چهارم &#8211; تبدیل نوع #C و متود های تبدیل نوع #C</title>
		<link>https://hamidrezababazadeh.ir/%d8%af%d8%b1%d8%b3-%da%86%d9%87%d8%a7%d8%b1%d9%85-%d8%aa%d8%a8%d8%af%db%8c%d9%84-%d9%86%d9%88%d8%b9-c-%d9%88-%d9%85%d8%aa%d9%88%d8%af-%d9%87%d8%a7%db%8c-%d8%aa%d8%a8%d8%af%db%8c%d9%84-%d9%86%d9%88/</link>
					<comments>https://hamidrezababazadeh.ir/%d8%af%d8%b1%d8%b3-%da%86%d9%87%d8%a7%d8%b1%d9%85-%d8%aa%d8%a8%d8%af%db%8c%d9%84-%d9%86%d9%88%d8%b9-c-%d9%88-%d9%85%d8%aa%d9%88%d8%af-%d9%87%d8%a7%db%8c-%d8%aa%d8%a8%d8%af%db%8c%d9%84-%d9%86%d9%88/#respond</comments>
		
		<dc:creator><![CDATA[حمیدرضا بابازاده]]></dc:creator>
		<pubDate>Fri, 26 Apr 2019 06:16:48 +0000</pubDate>
				<category><![CDATA[آموزش #C]]></category>
		<category><![CDATA[مفاهیم مقدماتی سی شارپ]]></category>
		<category><![CDATA[Type Conversion]]></category>
		<category><![CDATA[آموزش برنامه نویسی]]></category>
		<category><![CDATA[آموزش سی شارپ]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[سی شارپ]]></category>
		<category><![CDATA[سی شارپ #C]]></category>
		<category><![CDATA[محیط برنامه #C]]></category>
		<guid isPermaLink="false">http://hamidrezababazade.com/?p=788</guid>

					<description><![CDATA[<p>درس چهارم - تبدیل نوع #C و متود های تبدیل نوع #C</p>
The post <a href="https://hamidrezababazadeh.ir/%d8%af%d8%b1%d8%b3-%da%86%d9%87%d8%a7%d8%b1%d9%85-%d8%aa%d8%a8%d8%af%db%8c%d9%84-%d9%86%d9%88%d8%b9-c-%d9%88-%d9%85%d8%aa%d9%88%d8%af-%d9%87%d8%a7%db%8c-%d8%aa%d8%a8%d8%af%db%8c%d9%84-%d9%86%d9%88/">درس چهارم – تبدیل نوع #C و متود های تبدیل نوع #C</a> first appeared on <a href="https://hamidrezababazadeh.ir">حمیدرضا بابازاده</a>.]]></description>
										<content:encoded><![CDATA[<h3 class="wp-block-heading"><strong>تبدیل نوع #C</strong><br></h3>



<p>تبدیل نوع (Type Conversion) ، تبدیل یک نوع دیتا به نوعی دیگر است. همچنین به آن (Type Casting) نیز گفته می شود.</p>



<p>در #C، دو روش برای تبدیل نوع وجود دارد :</p>



<ul><li><strong>تبدیل نوع مطلق (Implicit type conversion) : </strong>این تبدیل ها به روش نوع مطمئن (Type-Safe) در #C انجام می شوند. برای مثال: تبدیلات از انتگرال کوچک تر به انتگرال بزرگتر و یا &nbsp;تبدیلات نشات گرفته از کلاس به کلاس های پایه ای</li><li><strong>تبدیل نوع صحیح (Explicit type conversion</strong>)<strong> : </strong>این تبدیل ها به صراحت توسط کاربر با استفاده از توابع از پیش تعیین شده انجام می شوند. تبدیل های صحیح به یک عملگر قالب (cast operator) نیاز دارند.</li></ul>



<p>مثال زیر یک تبدیل نوع صحیح را نشان می دهد.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="624" height="237" src="http://hamidrezababazade.com/wp-content/uploads/image-18.png" alt="" class="wp-image-790" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-18.png 624w, https://hamidrezababazadeh.ir/wp-content/uploads/image-18-300x114.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p>وقتی کد بالا کامپایل و اجرا می شود ، نتیجه زیر را بدست می آورد.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="623" height="25" src="http://hamidrezababazade.com/wp-content/uploads/image-19.png" alt="" class="wp-image-791" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-19.png 623w, https://hamidrezababazadeh.ir/wp-content/uploads/image-19-300x12.png 300w" sizes="(max-width: 623px) 100vw, 623px" /></figure>



<h3 class="wp-block-heading"><strong>متود های تبدیل نوع #C</strong></h3>



<p>#C متود های تبدیل نوع درون ساختی (Built-in) زیر را ارائه می دهد.</p>



<table class="wp-block-table aligncenter"><tbody><tr><td>
  <strong>شماره</strong><strong></strong>
  </td><td>                                         <strong>متد ها و توضیحاتشان</strong>   </td></tr><tr><td>
  ۱
  </td><td>   <strong>ToBoolean</strong> <br>  در صورت امکان، یک نوع یا تایپ را به بولین تبدیل می کند.   </td></tr><tr><td>
  ۲
  </td><td>   <strong>ToByte</strong>   <br>یک تایپ را به بایت تبدیل می کند.   </td></tr><tr><td>
  ۳
  </td><td>   <strong>ToChar</strong>  <br> در صورت امکان، یک تایپ را به یک تک کاراکتر یونیکد (Unicode) تبدیل می کند.   </td></tr><tr><td>
  ۴
  </td><td>   <strong>ToDateTime</strong> <br>  یک تایپ integer یا floating point (نوع صحیح یا نوع کسری) را به ساختارهای   زمانی تاریخ تبدیل می کند.   </td></tr><tr><td>
  ۵
  </td><td>   <strong>ToDecimal</strong><br>   یک تایپ integer یا floating point را به ساختارهای &nbsp;decimalتبدیل می کند.   </td></tr><tr><td>
  ۶
  </td><td>   <strong>ToDouble</strong> <br>  یک تایپ را به دابل (Double) تبدیل می   کند.   </td></tr><tr><td>
  ۷
  </td><td>   <strong>ToInt16</strong>  <br> یک تایپ را به ۱۶-bit   integer   تبدیل می   کند.   </td></tr><tr><td>
  ۸
  </td><td>   <strong>ToInt32</strong>  <br> یک تایپ را به ۳۲-bit   integer   تبدیل می   کند.   </td></tr><tr><td>
  ۹
  </td><td>   <strong>ToInt64</strong>   <br>یک تایپ را به ۶۴-bit   integer   تبدیل می   کند.   </td></tr><tr><td>
  ۱۰
  </td><td>   <strong>ToSbyte</strong>   <br>یک تایپ را به تایپ signed byte تبدیل می کند.   </td></tr><tr><td>
  ۱۱
  </td><td>   <strong>ToSingle</strong>   <br>یک تایپ را به&nbsp; یک عدد کوچک floating point تبدیل می کند.   </td></tr><tr><td>
  ۱۲
  </td><td>   <strong>ToString</strong>  <br> یک تایپ را به نوع رشته ای (string) تبدیل می کند.   </td></tr><tr><td>
  ۱۳
  </td><td>   <strong>ToType</strong><br>   یک تایپ را به یک نوع مشخص تبدیل می کند.   </td></tr><tr><td>
  ۱۴
  </td><td>   <strong>ToUInt16</strong><br>   یک تایپ را به یک تایپ unsigned   int   تبدیل می کند.   </td></tr><tr><td>
  ۱۵
  </td><td>   <strong>ToUInt32</strong> <br>  یک تایپ را به یک نوع unsigned بلند تبدیل می کند.   </td></tr><tr><td>
  ۱۶
  </td><td>   <strong>ToUInt64</strong><br>   یک تایپ را به یک تایپ unsigned   int   &nbsp;بزرگ تبدیل می کند.   </td></tr></tbody></table>



<p>مثال زیر انواع مقداری گوناگونی را به نوع رشته ای تبدیل می کند.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="624" height="292" src="http://hamidrezababazade.com/wp-content/uploads/image-20.png" alt="" class="wp-image-792" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-20.png 624w, https://hamidrezababazadeh.ir/wp-content/uploads/image-20-300x140.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>



<p>وقتی کد بالا کامپایل و اجرا می شود ، نتیجه زیر را بدست می آورد.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="624" height="69" src="http://hamidrezababazade.com/wp-content/uploads/image-21.png" alt="" class="wp-image-793" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-21.png 624w, https://hamidrezababazadeh.ir/wp-content/uploads/image-21-300x33.png 300w" sizes="(max-width: 624px) 100vw, 624px" /></figure>The post <a href="https://hamidrezababazadeh.ir/%d8%af%d8%b1%d8%b3-%da%86%d9%87%d8%a7%d8%b1%d9%85-%d8%aa%d8%a8%d8%af%db%8c%d9%84-%d9%86%d9%88%d8%b9-c-%d9%88-%d9%85%d8%aa%d9%88%d8%af-%d9%87%d8%a7%db%8c-%d8%aa%d8%a8%d8%af%db%8c%d9%84-%d9%86%d9%88/">درس چهارم – تبدیل نوع #C و متود های تبدیل نوع #C</a> first appeared on <a href="https://hamidrezababazadeh.ir">حمیدرضا بابازاده</a>.]]></content:encoded>
					
					<wfw:commentRss>https://hamidrezababazadeh.ir/%d8%af%d8%b1%d8%b3-%da%86%d9%87%d8%a7%d8%b1%d9%85-%d8%aa%d8%a8%d8%af%db%8c%d9%84-%d9%86%d9%88%d8%b9-c-%d9%88-%d9%85%d8%aa%d9%88%d8%af-%d9%87%d8%a7%db%8c-%d8%aa%d8%a8%d8%af%db%8c%d9%84-%d9%86%d9%88/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>درس سوم &#8211; انواع داده های#C</title>
		<link>https://hamidrezababazadeh.ir/%d8%af%d8%b1%d8%b3-%d8%a7%d9%88%d9%84-%d8%a7%d9%86%d9%88%d8%a7%d8%b9-%d8%af%d8%a7%d8%af%d9%87-%d9%87%d8%a7%db%8cc/</link>
					<comments>https://hamidrezababazadeh.ir/%d8%af%d8%b1%d8%b3-%d8%a7%d9%88%d9%84-%d8%a7%d9%86%d9%88%d8%a7%d8%b9-%d8%af%d8%a7%d8%af%d9%87-%d9%87%d8%a7%db%8cc/#respond</comments>
		
		<dc:creator><![CDATA[حمیدرضا بابازاده]]></dc:creator>
		<pubDate>Wed, 24 Apr 2019 15:21:13 +0000</pubDate>
				<category><![CDATA[آموزش #C]]></category>
		<category><![CDATA[مفاهیم مقدماتی سی شارپ]]></category>
		<category><![CDATA[آموزش برنامه نویسی]]></category>
		<category><![CDATA[آموزش سی شارپ]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[سی شارپ]]></category>
		<category><![CDATA[سی شارپ #C]]></category>
		<guid isPermaLink="false">http://hamidrezababazade.com/?p=745</guid>

					<description><![CDATA[<p>متغیر ها در C# به انواع زیر طبقه بندی می شوند:<br />
-	انواع مقداری (Value Type)<br />
-	انواع مرجعی (Reference Type)<br />
-	انواع اشاره ای (Pointer Type)</p>
The post <a href="https://hamidrezababazadeh.ir/%d8%af%d8%b1%d8%b3-%d8%a7%d9%88%d9%84-%d8%a7%d9%86%d9%88%d8%a7%d8%b9-%d8%af%d8%a7%d8%af%d9%87-%d9%87%d8%a7%db%8cc/">درس سوم – انواع داده های#C</a> first appeared on <a href="https://hamidrezababazadeh.ir">حمیدرضا بابازاده</a>.]]></description>
										<content:encoded><![CDATA[<p>متغیر ها در #C به انواع زیر طبقه بندی می شوند:</p>



<ul><li>نوع مقداری (Value Type)</li><li>نوع ارجاعی (Reference Type)</li><li>نوع اشاره‌ای (Pointer Type)</li></ul>



<h2 class="wp-block-heading"><strong>نوع مقداری (Value Type)</strong></h2>



<p>به متغیرهای نوع مقداری (Value Type) می توان مستقیما یک مقدار اختصاص داد. آن ها از کلاس System.ValueType  مشتق شده اند.</p>



<p>نوع مقداری (Value Type) مستقیما شامل اطلاعات می شود. چند نمونه آن int , char , float &nbsp;که اعداد , الفبا و اعداد ممیز شناور (floating point numbers) را ذخیره می کنند  .</p>



<p>وقتی شما یک نوع int
تعریف می کنید ، سیستم برای ذخیره مقدار ، بخشی از حافظه را به آن اختصاص
می دهد.</p>



<p>جدول زیر ، لیست نوع مقداری (Value Type) موجود در C# 2010 را نشان می دهد.<br></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="957" height="1024" src="http://hamidrezababazade.com/wp-content/uploads/1-6-957x1024.png" alt="" class="wp-image-747" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/1-6-957x1024.png 957w, https://hamidrezababazadeh.ir/wp-content/uploads/1-6-280x300.png 280w, https://hamidrezababazadeh.ir/wp-content/uploads/1-6-768x822.png 768w, https://hamidrezababazadeh.ir/wp-content/uploads/1-6.png 1144w" sizes="(max-width: 957px) 100vw, 957px" /></figure>



<p>برای گرفتن اندازه دقیق یک تایپ (Type) و یا متغیر روی یک پلتفرم خاص ، می توانید از متد Sizeof استفاده کنید. عبارت (Sizeof type) اندازه موردنیاز برای ذخیره سازی یک شی و یا تایپ را به بایت (byte) ارائه می دهد.</p>



<p>در ادامه ، مثالی از نحوه گرفتن اندازه نوع intرا مشاهده می کنید.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="570" height="145" src="http://hamidrezababazade.com/wp-content/uploads/image-9.png" alt="" class="wp-image-748" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-9.png 570w, https://hamidrezababazadeh.ir/wp-content/uploads/image-9-300x76.png 300w" sizes="(max-width: 570px) 100vw, 570px" /><figcaption><br></figcaption></figure>



<p>وقتی کد بالا کامپایل و اجراء می شود ، نتیجه زیر را تولید می کند.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="574" height="24" src="http://hamidrezababazade.com/wp-content/uploads/image-10.png" alt="" class="wp-image-749" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-10.png 574w, https://hamidrezababazadeh.ir/wp-content/uploads/image-10-300x13.png 300w" sizes="(max-width: 574px) 100vw, 574px" /></figure>



<h2 class="wp-block-heading"><strong>نوع ارجاعی (Reference Type)</strong></h2>



<p>Reference Type ها &nbsp;یا نوع ارجاعی اطلاعات حقیقی ذخیره شده در متغیر ها نمی باشند ، بلکه مرجعی از متغیر ها هستند. به بیانی دیگر ، آن ها به یک محل در حافظه اشاره می کنند. با استفاده از چندین متغیر ، Reference Type می تواند به یک محل در حافظه رجوع کند. اگر اطلاعات در محل حافظه توسط یکی از متغیر ها تغییر کند ، متغیر های دیگر به طور خودکار این تغییرات را در مقدار انعکاس و تغییر می دهند. چند نمونه از Built-in Reference Type یا نوع مرجعی درون ساختی، object , dynamic &nbsp;و string هستند.</p>



<h2 class="wp-block-heading"><strong> نوع آبجکت Object Type  </strong></h2>



<p>Object Type کلاس پایه نهایی برای تمام Data Type ها
در C# Common Type System (CTS) است.</p>



<p>Object یک نام مستعار برای کلاس System.Object است. می توان به Object Type هر مقدار ازType های دیگر اختصاص داد : Value Type , Reference Type &nbsp;و Type های از پیش تعیین شده و یا تعریف شده توسط کاربر، اما قبل از اختصاص دادن مقدار ، به تغییر دادن Type نیاز دارد.</p>



<p>به تبدیل شدن مقداری از نوع Value Type به نوع  Object Type  عملیات Boxing و از طرفی دیگر به تبدیل شدن Object Type به Value Type   عملیات  Unboxing می گویند.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="572" height="39" src="http://hamidrezababazade.com/wp-content/uploads/image-11.png" alt="" class="wp-image-750" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-11.png 572w, https://hamidrezababazadeh.ir/wp-content/uploads/image-11-300x20.png 300w" sizes="(max-width: 572px) 100vw, 572px" /></figure>



<h2 class="wp-block-heading"><strong>نوع داینامیک (Dynamic Type)</strong></h2>



<p>شما می توانید هرنوع
از مقدار ها را در متغیر Dynamic Data Type ذخیره کنید.
بررسی Type در این نوع متغیر ها در زمان اجرا انجام می شود.</p>



<p>سینتکس برای شناساندن Dynamic Type :</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="572" height="24" src="http://hamidrezababazade.com/wp-content/uploads/image-12.png" alt="" class="wp-image-751" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-12.png 572w, https://hamidrezababazadeh.ir/wp-content/uploads/image-12-300x13.png 300w" sizes="(max-width: 572px) 100vw, 572px" /></figure>



<p>برای مثال</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="572" height="24" src="http://hamidrezababazade.com/wp-content/uploads/image-13.png" alt="" class="wp-image-752" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-13.png 572w, https://hamidrezababazadeh.ir/wp-content/uploads/image-13-300x13.png 300w" sizes="(max-width: 572px) 100vw, 572px" /></figure>



<p>Dynamic Type ها مشابه Object Type ها هستند ، فقط بررسی Type در Object Type در زمان کامپایل انجام می شود ، اما در Dynamic Type این کار در زمان اجرا انجام می شود.</p>



<h2 class="wp-block-heading"><strong>نوع رشته ای (String Type)</strong></h2>



<p>String Type به شما اجازه می دهد هر چقدر می خواهید مقدار رشته ای (کلمه,جمله) به یک متغیر اختصاص دهید. String Type یک نام مستعار برای کلاس System.String است &nbsp;و از Object Type نشات گرفته است. مقدار String Type می تواند به وسیله رشته حرفی، به دو شکل &nbsp;Quoted و @Quoted معین شود .</p>



<p>برای مثال</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="47" src="http://hamidrezababazade.com/wp-content/uploads/image-14-1024x47.png" alt="" class="wp-image-753" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-14-1024x47.png 1024w, https://hamidrezababazadeh.ir/wp-content/uploads/image-14-300x14.png 300w, https://hamidrezababazadeh.ir/wp-content/uploads/image-14-768x35.png 768w, https://hamidrezababazadeh.ir/wp-content/uploads/image-14.png 1087w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>رشته حرفی @Quoted به شکل زیر است:</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="47" src="http://hamidrezababazade.com/wp-content/uploads/image-15-1024x47.png" alt="" class="wp-image-754" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-15-1024x47.png 1024w, https://hamidrezababazadeh.ir/wp-content/uploads/image-15-300x14.png 300w, https://hamidrezababazadeh.ir/wp-content/uploads/image-15-768x35.png 768w, https://hamidrezababazadeh.ir/wp-content/uploads/image-15.png 1082w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Use-Defined Reference Type شامل Class , Interface &nbsp;و یا Delegate
هستند. </p>



<p>در فصل بعدی درباره
این Type ها بحث خواهیم کرد.</p>



<h2 class="wp-block-heading"><strong>نوع اشاره ای (Pointer Type)</strong></h2>



<p>متغیر Pointer Type نشانی حافظه ی یک Type دیگر را ذخیره می کند. Pointer ها در #C قابلیت های یکسان با Pointer ها در C ویا ++C دارند.</p>



<p>قاعده ی تعریف Pointer Type:</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="544" height="25" src="http://hamidrezababazade.com/wp-content/uploads/image-16.png" alt="" class="wp-image-755" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-16.png 544w, https://hamidrezababazadeh.ir/wp-content/uploads/image-16-300x14.png 300w" sizes="(max-width: 544px) 100vw, 544px" /></figure>



<p>برای مثال</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="543" height="38" src="http://hamidrezababazade.com/wp-content/uploads/image-17.png" alt="" class="wp-image-756" srcset="https://hamidrezababazadeh.ir/wp-content/uploads/image-17.png 543w, https://hamidrezababazadeh.ir/wp-content/uploads/image-17-300x21.png 300w" sizes="(max-width: 543px) 100vw, 543px" /></figure>



<p>در مورد Pointer Type در
فصل “Unsafe Code” (کدهای نا امن) بحث خواهیم کرد.</p>The post <a href="https://hamidrezababazadeh.ir/%d8%af%d8%b1%d8%b3-%d8%a7%d9%88%d9%84-%d8%a7%d9%86%d9%88%d8%a7%d8%b9-%d8%af%d8%a7%d8%af%d9%87-%d9%87%d8%a7%db%8cc/">درس سوم – انواع داده های#C</a> first appeared on <a href="https://hamidrezababazadeh.ir">حمیدرضا بابازاده</a>.]]></content:encoded>
					
					<wfw:commentRss>https://hamidrezababazadeh.ir/%d8%af%d8%b1%d8%b3-%d8%a7%d9%88%d9%84-%d8%a7%d9%86%d9%88%d8%a7%d8%b9-%d8%af%d8%a7%d8%af%d9%87-%d9%87%d8%a7%db%8cc/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
