# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > F#‎‎ >  مقایسه #F و #C

## ali-iman

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

----------


## RIG000

از اونجایی که اف شارپ ا نیفتاده در ایران هنوز به طور کابردی فکر نکنم پروژه ای باها راه افتاده باشه اما در حالت کلی میشه گفت برای انجام برنامه های محاسباتی دقیق اف شارپ ساخته شده . از طرفی برای بازی سازی هم کاربرد داره . اف شارپ به طور پایه ای بر روی Functional programming هست و در خودش به طور مثال پاردایم oop رو هم داره وبه خوبی در خودش ساپورت میکنه . ولی مثلا سی شارپ بر روی  oop هست اما در خودش به طور مختصری از Functional Programming هم استفاده میکنه و ساپورتش میکنه. اما #F کامل تر داره هر دو رو ساپورت میکنه . برنامه نویسی رویه ای هم بهتره در موردش بخونید. 
یه مثالی از مقایسه سی شارپ و اف شارپ که در مورد Strongly Type بودنشون . 
سی شارپ strongly type هست یعنی شما عملا هم implicit casting و explicit casting   ‌رو توش دارید اما اف شارپ implicit casting رو ساپورت نمیکنه و همه چیز به عهده برنامه نویس هست یعنی شما مثلا در تبدیل نوع هاتون اگر اشتباهی کنید مقصر خود برنامه نویسه نه کدی که اینکار رو انجام میده. از طرفی میشه گفت یکم موضوع جدی تر هست تو اف شارپ و در نهایت به این میرسیم که #F نسبت به #C‌میشه گفت Strongly type هست .
 از طرفی دیگه تعداد خط کد هایی که با #F زده میشه کمتر از #C هست (انجام کد  به یک شکل باشه و برابری)
اما این دلیل نمیشه که بگیم سی شارپ ضعیف تر هست. در بحث پیاده سازی oop سی شارپ واقعا خیلی خوب عمل میکنه .
اف شارپ immutable بودن رو مبنای کارش قرار داده 
linq نمونه ای از برنامه نویسی تابعی در سی شارپ هست 
این لینک هم میتونه به شما در برنامه نویسی تابعی Functional در سی شارپ کمک کنه.
https://www.codeproject.com/Articles...ming-in-Csharp

----------

