PDA

View Full Version : سوالی پیرامون شیء گرا بودن C#‎



lordly
جمعه 06 شهریور 1388, 15:52 عصر
سلام دوستان

من تازه تو این سایت عضو شدم

شرمنده اگر مکان پست اشتباه هست

سوالی خدمتتون داشتم .
استاد ما 5 تا پروژه داد که گفت باید یکی از اونها ، با C#‎ انجام بشه
یکی از پروژه ها notepad بود

خواستم ببینم C#‎ به تنهایی برنامه شیء گراست یا باید شیءگراش کرد ؟؟

متشکر

mahdi_7610
جمعه 06 شهریور 1388, 17:44 عصر
سی شارپ یک زبان کاملا شی گراست .

mojtaba1363
شنبه 07 شهریور 1388, 02:15 صبح
با سلام
دوست عزیز در #c به دوصورت WindowsApplication و ConsoleApplicationمی توان برنامه نویسی انجام داد برنامه هایی که به صورت WindowsApplication نوشته میشوند کاملا شی گرا هستند

یا علی

alireza_tavakol
شنبه 07 شهریور 1388, 02:32 صبح
با سلام
دوست عزیز در C#‎ به دوصورت WindowsApplication و ConsoleApplicationمی توان برنامه نویسی انجام داد برنامه هایی که به صورت WindowsApplication نوشته میشوند کاملا شی گرا هستند

یا علی

:متعجب::متعجب::متعجب:

در هر دو حالت WindowsApplication و ConsoleApplication برنامه تولید شده Object Base می باشد

اَرژنگ
شنبه 07 شهریور 1388, 06:08 صبح
با سلام
دوست عزیز در C#‎ به دوصورت WindowsApplication و ConsoleApplicationمی توان برنامه نویسی انجام داد برنامه هایی که به صورت WindowsApplication نوشته میشوند کاملا شی گرا هستند

یا علی




:متعجب::متعجب::متعجب:

در هر دو حالت WindowsApplication و ConsoleApplication برنامه تولید شده Object Base می باشد

اینکه windows application و console appication شئیگرا هستند و یا نیستند، یا اینکه ابجکت بیست هسنتد و یا نیسند بی معنی است و هیچ مفهومی را نمیرساند.
زبان برنامه نویسی میتواند شئیگرا باشد، ابجکت بیس باشد، ولی برنامه‌ای که تولید میشه دیگه ربطی به شئیگرائی و یا ابجکت بیس بودن ندارد. مثل این میماند که بگیم باقلوا ، شکر هست و یا نیست. ممکنه از شکر در ساختنش استفاده شده باشد و یا نه، ولی گفتن اینکه باقلوا شکر هست و یا نیست ، معنی ندارد و مفهومی را نمیرساند. بعضی چیزها را میشه گفت ولی به واقعیت ربطی ندارد که درست و یا حتی غلط باشد. مثل اینکه بگیم امروز چه روز خوبی است، درست بودن و یا نبودنش را نمیشه اثبات کرد و یا رد کرد.

alireza_tavakol
شنبه 07 شهریور 1388, 15:27 عصر
زبان برنامه نویسی میتواند شئیگرا باشد، ابجکت بیس باشد، ولی برنامه‌ای که تولید میشه دیگه ربطی به شئیگرائی و یا ابجکت بیس بودن ندارد.

با سلام خدمت استاد اَرژنگ عزیز

در روز های اولی که C++‎ به وجود اومده بود ، برنامه نویس ها اسم C with OOP را واسش انتخاب کرده بودن چون همان زبان سی بود با این تفاوت که قابلیت برنامه نویس شی گرا رو محیا کرده بود. در این نوع زبان ها (Object Oriented) برنامه نویس مختار بود در پیاده سازی برنامه به گونه ای که می توانست برنامه شی گرا تولید کند یا به سبک سنتی عمل کند

ولی زبان جاوا ملقب به Object Base است ، چون در این زبان همه چیز بر مبنای کلاس ها است ، یعنی برنامه از کلاس های متعدد تشکیل شده است و حتی سیستم عامل برای اجرای این نوع برنامه ها باید یک نمونه ( static ) از یکی از کلاس های برنامه که متد main دارد بسازد تا برنامه اجرا شود

نتیجه گیری شخصی : هیچ کسی نمی تونه ادعا کنه با زبان C#‎ برنامه غیر شی گرا تولید کرده و جمله زیر از نظر علمی مشکل داره



دوست عزیز در C#‎‎ به دوصورت WindowsApplication و ConsoleApplicationمی توان برنامه نویسی انجام داد برنامه هایی که به صورت WindowsApplication نوشته میشوند کاملا شی گرا هستند

mojtaba1363
یک شنبه 08 شهریور 1388, 01:50 صبح
با سلام خدمت استاد اَرژنگ عزیز

در روز های اولی که C++‎‎ به وجود اومده بود ، برنامه نویس ها اسم C with OOP را واسش انتخاب کرده بودن چون همان زبان سی بود با این تفاوت که قابلیت برنامه نویس شی گرا رو محیا کرده بود. در این نوع زبان ها (Object Oriented) برنامه نویس مختار بود در پیاده سازی برنامه به گونه ای که می توانست برنامه شی گرا تولید کند یا به سبک سنتی عمل کند

ولی زبان جاوا ملقب به Object Base است ، چون در این زبان همه چیز بر مبنای کلاس ها است ، یعنی برنامه از کلاس های متعدد تشکیل شده است و حتی سیستم عامل برای اجرای این نوع برنامه ها باید یک نمونه ( static ) از یکی از کلاس های برنامه که متد main دارد بسازد تا برنامه اجرا شود

نتیجه گیری شخصی : هیچ کسی نمی تونه ادعا کنه با زبان C#‎‎ برنامه غیر شی گرا تولید کرده و جمله زیر از نظر علمی مشکل داره

با سلام خدمت همه دوستان عزیز

استاد ارژنگ و استاد alireza_tavakol من سابقه برنامه نویسی زیادی ندارم و اکثر کارهای من WindowsApplication است منظور من از شی گرا نبودن کن ConsoleApplication استفاده نکردن از object بوده چون اساید دانشگاه اینجوری آموزش دادند خیلی خوشحال میشم اگه مقاله ای در این زمینه دارید معرفی کنید تا من و کسانی که مثل من فکر می کنند از اشتباه خارج شوند
اما یک سوال مگه نمیشه کالاسها رو در محیط WindowsApplication ایجاد کرد ؟ اگه میشه چه زمانی از ConsoleApplication استفاده میشه ؟

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

http://barnamenevis.org/forum/showthread.php?t=156007

یا علی

Amir Oveisi
یک شنبه 08 شهریور 1388, 02:17 صبح
منظور من از شی گرا نبودن کن ConsoleApplication استفاده نکردن از object بوده چون اساید دانشگاه اینجوری آموزش دادند
متاسفانه اساتید دانشگاهتون کاملا اشتباه کردن!
در Console Application اگر نگاه گنید همون متد Main که نقطه شروع برنامه است خودش داخل یک کلاس به اسم Program هست و این اولین object در Console Application! برای انجام هر کاری در C# و کلا .NET Framework با object ها سر و کار دارید و object ها همه جا حضور دارند.

اَرژنگ
سه شنبه 10 شهریور 1388, 11:37 صبح
با سلام خدمت همه دوستان عزیز

استاد ارژنگ و استاد alireza_tavakol من سابقه برنامه نویسی زیادی ندارم و اکثر کارهای من WindowsApplication است منظور من از شی گرا نبودن کن ConsoleApplication استفاده نکردن از object بوده چون اساید دانشگاه اینجوری آموزش دادند خیلی خوشحال میشم اگه مقاله ای در این زمینه دارید معرفی کنید تا من و کسانی که مثل من فکر می کنند از اشتباه خارج شوند
اما یک سوال مگه نمیشه کالاسها رو در محیط WindowsApplication ایجاد کرد ؟ اگه میشه چه زمانی از ConsoleApplication استفاده میشه ؟

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

http://barnamenevis.org/forum/showthread.php?t=156007

یا علی

با سلام،

استفاده از WindowsApplication برایه نشان دادن برنامه با فرمهایه وینودز است، استفاده ازConsoleApplication برایه نشان دادن در محیط Consol هست. استفاده کردن و یا نکردن از هیچ کدامشان ربطی به شیئگرا بودن زبان C#‎‎‎ ندارد. چونکه انواع بسیار مختلفی از برنامه‌ها با C#‎‎‎ نوشته میشند، ولی خصوصیت شئیگرابود زبان C#‎‎‎ به اینکه چی نوشته میشه ربطی ندارد.

قابلیت شئیگرائی یک زبان با برنامه نویسی شئیگرائی تفاوت دارد.

خیلیها فکر میکنند برایه اینکه از C#‎‎‎ استفاده میکنند به شکل اتوماتیک برنامه نویس شئیگراند، در حالی که حقیقت برنامه نویسی شئیگرا را به راحتی میشه سنجید:
۱. استفاده نا سنجیده از متدهایه استاتیک (این معمولا مشکل کسانی است که برنامه‌نویسی با یک زبان غیره‌شئیگرا را زودتر از برنامه‌نویسی با یک زبان شئیگرا یاد گرفته‌اند. روشهایه را که با یک زبان دیگر یادگرفته‌اند در جایه اشتباه پیاده میکنند). مثال این را بارها در همین فروم برایه نشان دادن یک فرم به عنوان یک مثال (اشتباه) فرستاده میشه، را میشه دید (برایه روش درست به شماره ۲ نگاه بندازید).

۲.برایه شئیگرایی بودن یک برنامه اول باید به اصول شئیگرائی پایند باشند، از الگوهایه شئییگرائی استفاده کنند.(بارها استادان در همین انجمن روشهایه استفاده از الگوها را به عنوان جواب فرستادند، مقالات هم فرستادند، ولی هر کی از راه میرسه هر روشی را به عنوان برنامه‌نویسی میریزه بعدش هم بخودشان یکمی زحمت مطالعه نمیدند که یک چیزی یاد بگیردند، کسان دیگر را هم با روشهایه اشتباهشان گمراه میکنند).

با اینکه C#‎‎‎ ‌زبان شئیگرائیست، ولی میشه باهاش برنامه‌هایی نوشت که با اینکه در ظاهر از کلاس و ابجکت استفاده میکنند، ولی اصلا شئیگرا نیستند.

به عنوان مثال بیشترین مثالهایی که با برنامه‌نویسی کنسول دیده میشند همه چی را در یکجامیریزند، به هیچ عنوانی نمیشه به این یک برنامه شئیگرائی گفت.
حالا اگر همین برنامه کنسول را در کلاسهایه مختلف با استفاده از اصول و الگوهایه شئیگرائی پیاده کنند میشه گفت که با برنامه‌نیسی شئیگرائی نوشته شده.

اینکه میشه با C#‎‎‎ برنامه‌نویسی غیره شئیگرا انجام داد زیاد سخت نیست، همان استفاده زیادی از متدهایه استاتیک و مخفی کردن فرمها به جایه اینکه زمانی که لازم هستند ایجاد بشند و وقتی که لازم نیستند نابود بشند، استفاده نکردن از اصول و الگوهایه شئیگرائی ... باهم به راحتی باعث میشند که برنامه‌ای که نوشته شده شئیگرا نباشد.

برنامه‌نویسی شئیگرا در مورد داشتن دیسیپلین و استفاده از روشهایه درست که در مدتهای زیادی بررسی شدند و ازشان مداوما استفاده میشند هست.

هر کسی که با C#‎‎‎ برنامه مینویسه نمیتواند ادعا اینکه برنامه نویس شئیگراست را داشته باشد.