اولا با C# فقط برنامه های تحت .NET میشه نوشت (در واقع C# برای .NET درست شده) ، اما با C++ هم برنامه های تحت (NET managed) و هم برنامه های native میشه نوشت.

دوما هنوز برای کارهای سطح پایین (مثل Device Driver) و سنگین (مثل بازی های سه بعدی) C++ انتخاب اول و آخر محسوب میشه.

C# خیلی راحتتر ، تمیزتر و خوش ساخت تر از C++ طراحی شده و از نظر شی گرایی هم پشتیبانی بهتری داره نسبت به C . C# کاملا شی گراست و اصلا نمیتونید برنامۀ غیر شی گرا در اون بنویسید ، در صورتی که با C++ میتونین هم شی گرا و هم غیر شی گرا ، برنامه بنویسید.

از ویژگی های C# :

1- مدیریت خودکار حافظه توسط CLR

2- پشتیبانی از یک نوع String داخلی

3- پشتیبانی از foreach

4- پشتیبانی کامل از delegate و event و interface و Property و attribute ها

5 - XML Documentation

6 – checked / unchecked keywords

و ...

در C# برای انجام تمام کارها از کلاس های .NET استفاده میشه ، در ضمن در C# چیزی به نام فایلهای Header و #include و از این حرفا نداریم. در واقع C# خیلی زیباتر از C++ طراحی شده ، چون به هر حال در طراحی C# از زبانهایی مثل C++ و JAVA و Delphi درس گرفته شده و اشتباهات اون زبانها در C# تکرار
نشده ؛ به عنوان مثال در C++ به تعداد انگشتان دست ، نوع دادۀ String داریم. یا Multiple Inheritance که خیلی دردسر سازه ، یا مثلا در JAVA ، enum ها و Operator Overloading و Pointer و Property ها که همگی جزو ضروریات محسوب میشن ، وجود ندارن. البته کسانی که میخوان کار سنگین یا سطح پایین در .NET انجام بدن ، معمولا همه قسمتهایی رو که امکانش هست با C# می نویسن و بقیه رو با C++ ؛ و در C# از کلاسهای نوشته شده در C++ استفاده می کنن . (Wrapper Classes ) در کل C# ، سطح بالاتر(High Level ) از C++ است ؛ در C++ حتی میتونید مستقیما از کد اسمبلی استفاده کنید.

در ضمن C# اولین زبان Component Oriented در خانوادۀ C محسوب میشه.

خیلی تفاوتها و شباهتهای دیگری هم هست که در صورت پرداختن به اونا بحث خیلی تخصصی میشه ، فقط در یه جمله بگم : بزرگترین شباهت این دو زبان اینه که هر دو جزو خانوادۀ C هستن . و بزرگترین تفاوت اینکه : C# یک زبان type-safe هست (بر خلاف C++ ) و فقط باهاش میشه برنامه های تحت .NET نوشت.

البته قصدم از این مطالب اثبات برتری C# به C++ نبود ، چون به هر حال برای برنامه های تحت .NET ، C# بهترین گزینه است و در جاهای دیگه هنوز هم C++ قویترین زبان دنیاست. البته دوستان میتونن در صورت تمایل درخواست پستهای بیشتر و مطالب پیشرفته تری از  C#رو بزارن تا منم یه سری مطالب جدیدتر و قشنگتریو ازاین زبان برنامه نویسی تو وبم قرار بدم.