Ramin_Hoobakht
سه شنبه 17 شهریور 1388, 18:22 عصر
خیلی پیش میاد که ما دادههای ورودی رو چک میکنیم. مثلاً اینکه منفی نباشد کوچکتر و یا بزرگتر از فلان عدد نباشد. تقریبا مجبوریم هرجا که این دادهها در رفت و آمدهستند مقدار آنها رو چک کنیم تا از صحت و درستی آن مطمئنم شویم.
از جانبی دیگر میدانیم که دیتا تایپ ها در سی شارپ از نوع استراکچر هستند. حالا سئوال این است چطور میتوانیم یک دیتا تایپ تعریف کنیم که تمام شروط ما رو در بر داشته باشه و در ضمن بتوانیم درست مانند دیتا تایپهای خود سی شارپ با آنها رفتار کنیم.
در حالت عادی اگر من یک استراکچر تعریف کنم مجبور که با قرار دادن دات در مقابلش به اعضای آن دسترسی پیدا کنم. در حالیکه وقتی ما یک متغیر تعریف میکنیم مانند:
int x
و بعد به راحتی میتوانیم بنویسیم:
x=10
همین int یک استراکچر است. ولی اگر من توسط استراکچر یک دیتا تایپ تعریف کنم باید روبری آن نقطه بگذارم تا به اعضای آن دسترسی داشته باشم. ضمن اینکه گاهی اوقات اگر استراکچرم رو new نکنم کامپایلر از من ایراد میگیره در حالی میدونیم دیتا تایپهای سی شارپ که Value Type هستند نیازی به ساختن Instance ندارند.
لطفاً منو راهنمایی کنید. بسیار متشکرم.
از جانبی دیگر میدانیم که دیتا تایپ ها در سی شارپ از نوع استراکچر هستند. حالا سئوال این است چطور میتوانیم یک دیتا تایپ تعریف کنیم که تمام شروط ما رو در بر داشته باشه و در ضمن بتوانیم درست مانند دیتا تایپهای خود سی شارپ با آنها رفتار کنیم.
در حالت عادی اگر من یک استراکچر تعریف کنم مجبور که با قرار دادن دات در مقابلش به اعضای آن دسترسی پیدا کنم. در حالیکه وقتی ما یک متغیر تعریف میکنیم مانند:
int x
و بعد به راحتی میتوانیم بنویسیم:
x=10
همین int یک استراکچر است. ولی اگر من توسط استراکچر یک دیتا تایپ تعریف کنم باید روبری آن نقطه بگذارم تا به اعضای آن دسترسی داشته باشم. ضمن اینکه گاهی اوقات اگر استراکچرم رو new نکنم کامپایلر از من ایراد میگیره در حالی میدونیم دیتا تایپهای سی شارپ که Value Type هستند نیازی به ساختن Instance ندارند.
لطفاً منو راهنمایی کنید. بسیار متشکرم.