PDA

View Full Version : تفاوت struct و class!



bnf_mh
پنج شنبه 21 مرداد 1389, 11:53 صبح
سلام دوستان:
می خواستم بدونم تفاوت struct و class در c# چیه ؟
شنیدم تفاوتی ندارن. یعنی اگه یه سری متغیر و تابع رو تو struct تعریف کنم خروجی همون طوریه که با class؟

اگه کسی می دونه لطفا کمک کنه :خجالت: .

محسن شامحمدی
پنج شنبه 21 مرداد 1389, 12:36 عصر
در کلاس می شه هم متغیر گذاشت هم تابع هم ....
ولی در ساختار یا همون struct فقط می شه متغیر گذاشت
کلاس جزئی از لوازم کار شی گرایی است.

bnf_mh
پنج شنبه 21 مرداد 1389, 12:40 عصر
در کلاس می شه هم متغیر گذاشت هم تابع هم ....
ولی در ساختار یا همون struct فقط می شه متغیر گذاشت
کلاس جزئی از لوازم کار شی گرایی است.


ممنون.اما مطمئنید که تو ساختار نمی شه تابع و .. گذاشت؟
امتحان کنید.فک کنم بشه

teardrop
پنج شنبه 21 مرداد 1389, 14:40 عصر
به نام خدا

ساختمان مجموعه ای ار عناصر است که می توانند همنوع نباشند.
فرفش با کلاس در این است که اعضای کلاس در حالت عادی به صورت اختصاصی اند ولی اعضای ساختمان به صورت عمومی اند.
در سایر موارد دقیقا یکسان هستند.


اعضای عمومی و اختصاصی ساختمان،همچون کلاس می توانند به صورت داده ای یا تابعی باشند.

و فرق مهمی آن با کلاس در پشتیبانی نکردن از وارثت می باشد.

محسن شامحمدی
جمعه 22 مرداد 1389, 09:15 صبح
ببخشید دوستان اشتباه کردم ولی اینو می دونم که ساختار سریالیزه نمی شه ولی کلاس به راحتی سریالیزه می شه.

zentex
جمعه 22 مرداد 1389, 09:58 صبح
اوه خدای من بالاخره یه سوال پرسیده شد که بتونم جواب بدم،ماشالله همه حرفه ای اندنمیشه صحبت کرد
ساختار(struct)وکلاس(class)شباهتا زیادی دارن ولی ساختاریک نوع داده ای مقداری و کلاس یک نوع داده ای ارجاعیه
نکته : ذخیره اطلاعات به شکل مقداری فاقدسربارحافظه هستند واسه همین ساختارها واسه کاربامقادیر کم داده مناسبترند.


اعضاوتعریف اعضا ساختار عین کلاس هست یعنی هم میتونی توش عضو داده ای تعریف کنی هم تابع امااما برای تعرف تابع سازنده در ساختار حتما حتما باید پارامترها را در اعلان ذکرکنی یعنی اعلان تابع سازنده بدون پارامتر در ساختار عملی نیست.



دوباره اما در ساختار امکان تعریف تابع مخرب وجود نداره.

امیدوارم که تونسته باشم کمکی کنم

bnf_mh
پنج شنبه 28 مرداد 1389, 10:21 صبح
ممنون دوستان
راهنمایی هاتون خیلی کمک کرد.
نجاتم دادین.:لبخندساده:

mohsen_csharp
پنج شنبه 28 مرداد 1389, 10:36 صبح
یک تفاوت دیگه بین class و struct در این است که در class ارث بری به صورت کامل داریم ولی در struct محدودیت داریم اونم اینکه نمی توان از یک struct ارث بری کرد و struct ها هم نمی توانند از یک class یا struct دیگر ارث بری کنند بلکه struct ها فقط می توانند از interface ها ارث بری کنند.
فقط یک استثنا هست اونم اینکه همه struct ها به طور ضمنی از کلاس ValueType ارث بری می کنند.

jalal_h14
پنج شنبه 21 شهریور 1392, 21:26 عصر
مهمترین تفاوت این دو این است که استراکچر ها value type و کلاس ها reference type هستند !

FastCode
پنج شنبه 21 شهریور 1392, 22:25 عصر
یه سری به مقاله مربوط به POCO در ویکیپدیا بزنید.

hestiya
پنج شنبه 14 اسفند 1393, 16:00 عصر
1. کلاس ها reference type و استراکچرها value type
2 . استراکچرها از وراثت پشتیبانی نمی کنند.
3. استراکچرها نمی تونند ساختار پیچیده ای داشته باشند