برای ارتباط با مدیر سایت از ID تلگرام ebrahimi_younes@ استفاده نمایید. به سوالات و مشکلات برنامه نویسی پاسخ داده نمی شود.

سی شارپ چیست؟

سی شارپ (#C) یک زبان برنامه نویسی شیء گرا است که توسط شرکت مایکروسافت ساخته شده و ترکیبی از قابلیتهای خوب ++C و JAVA است. اگر با این دو زبان آشنایی دارید این شانس را دارید زبان سی شارپ را راحت یاد بگیرید. این زبان به قدری راحت است که هم کسانی که قبلا برنامه نویسی نکرده اند و هم دانش آموزان می توانند راحت آن را یاد بگیرند. از سی شارپ می توان برای ساخت برنامه های تحت ویندوز، تحت وب، وب سرویس ها، برنامه های موبایل و بازی ها استفاده کرد. می توان به جای واژه ویژوال سی شارپ از کلمه سی شارپ استفاده کرد، اما ویژوال سی شارپ به معنای استفاده همزمان از سی شارپ و محیط گرافیکی ویژوال استودیو می باشد. این زبان برنامه نویسی تنها زبانی است که مخصوصا برای دات نت فریم ورک طراحی شده است.
سی شارپ از کتابخانه کلاس دات نت که شامل مجموعه بزرگی از اجزاء از قبل ساخته شده است، استفاده می کند. این اجزا به ساخت هر چه سریعتر برنامه ها کمک می کنند. سی شارپ یک برنامه بسیار قدرتمند و شیء گرا است و با آن می توان برنامه هایی با قابلیت مدیریت بیشتر و درک آسان ایجاد کرد. ساختار این زبان نسبت به زبان های دیگر بسیار آسان و قابل فهم است. برای اجرای یک برنامه سی شارپ ابتدا باید دات نت فریم ورک نصب شود. سی شارپ یکی از زبان هایی است که از تکنولوژی های دیگر دات نت مانند ASP.NET ،Silverlight و XNA پشتیبانی می کند. همچنین یک محیط توسعه یکپارچه دارد که آن نیز به نوبه خود دارای ابزارهای مفیدی است که به شما در کدنویسی در سی شارپ کمک می کند.
با ظهور C# 7.0 قابلیت های جدیدی به این زبان اضافه شد که به شما امکان می دهند که برنامه هایی بهینه تر و پربار تر با کدنویسی کمتر بنویسید. حال که اسم نسخه 7 سی شارپ به میان آمد بهتر است که با نسخه های مختلف این زبان از ابتدا تاکنون که در جدول زیر آمده است آشنا شوید :

نسخه سی شارپ نسخه Visual Studio
C# 1.0 Visual Studio .NET 2002
C# 1.1 Visual Studio .NET 2003
C# 2.0 Visual Studio 2005
C# 3.0 Visual Studio 2008
C# 4.0 Visual Studio 2010
C# 5.0 Visual Studio 2012/2013
C# 6.0 Visual Studio 2015
C# 7.0 Visual Studio 2017

دلیل پیدایش این زبان بر طبق دانشنامه wikipedia بدین شرح است که :

برای آشنایی بیشتر با این زبان به لینک زیر مراجعه کنید :

سی شارپ به طور دائم توسط مایکروسافت به روز شده و ویژگیهای جدیدی به آن اضافه می شود و یکی از بهترین زبانهای برنامه نویسی دات نت است.

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر و اگر سوالی دارید در بخش پرسش و پاسخ مطرح بفرمایید.

  1. arman.ehdaei پاسخ دادن

    سلام آقای ابراهیمی وقت شما بخیر ممنون بابت سایت خوبتون
    چندتا سوال داشتم ممنون میشماگه امکانش هست راهنماییم کنید
    من ۲۸ سالمه و عمران خوندم و چون به رشته م علاقه نداشتم
    میخام برنامه نویسی یاد بگیرم خواستم بپرسم اینکه برای شروع سی شارپ رو انتخاب کردم کار درستیه و یا اگر نه ممنون میشم یه راهنماییم بکنید که چه برنامه ای رو برای شروع یاد بگیرم بهتره و کدوم برنامه بازار کارش بهتره و اینکه من اول راهم به نظرتون با یه استعداد متوسط و روزی ۵ ساعت وقت گذاشتن حدودا چقدر طول میکشه به حدی برسم که بتونم به عنوان یه کارآموز توی یه شرکت شروع به کار بکنم؟

  2. یونس ابراهیمی پاسخ دادن

    سلام دوست عزیز و بسیار ممنون بابت لطفتون

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

    در آخر هم توصیه می کنم خودتونو سر در گم نکنید و فقط یه زبان رو کار کنید، فرض کنید شما سی شارپ در مدت ۳ سال حرفه ای شدین، اون موقع یاد گیری زبانهایی مث جاوا
    و asp و … نهایتا ۵ – ۶ ماه براتون زمان میبره. یعنی اینکه می بینید کسایی می گن ده زبان رو بلدن همین کار رو کردن، تو یه زبان حرفه ای شدن و بقیه رو زود تر یاد گرفتن
    تحقیق کنید و مزایا و معایب هر زبان رو بفهمید و بعد از تصمیم ، هیچوقت هدفتونو ول ندین
    موفق و موید باشین

  3. arman.ehdaei پاسخ دادن

    خیلی ممنون از راهنماییتون اینکه گفتین شماهم از ۲۹سالگی شروع کردین منم انرژی گرفتم چون فکر کردم سنم زیاد شده و یادگیریش سخت تر شده.
    در مورد جاوا و سی شارپ تحقیق کردم و هر بار یکیشو بهم پیشنهاد کردن جسارتا میخاستم نظر شما رو هم بدونم که پیشنهاد شما به من جاواست یا سی شارپ؟ بازار کار و درآمد کدومشون بهتره؟
    بازم ممنون بخاطر سایت خوبتون و راهنماییاتون.

    • یونس ابراهیمی پاسخ دادن

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

  4. arman.ehdaei پاسخ دادن

    آقای ابراهیمی با یادگیری کامل همین مطالبی که شما گذاشتین میشه به عنوان یه کارآموز توی یه شرکت شروع بهد کار کرد یا باید مطالب بیشتری یاد گرفت و تمرینهای مختلف و متفاوتی انجام داد تا به اون حد برسیم ؟

    • یونس ابراهیمی پاسخ دادن

      نه، این آموزش ها تا سطح متوسط هستن، شما باید تمرین داشته باشین و آموزش های دیگه رو هم ببینید.

  5. mohsen پاسخ دادن

    سلام خسته نباشد دیتا گریدویودارم و یک باتون میخوام هربار روی باتون کلیک کردم به idیکی اضافه بشه

  6. mohsen پاسخ دادن

    سلام و خسته نباشید!
    توی یک فرمی ۵تا تکس باکس گذاشتم و دیتابیس رو بهش اتصال دادم کد insert هم برای دکمه تعریف کردم متن های داخل تکست باکس داخل دیتا ذخیره میشه اما زمانی که یه متن کوتاه رو از یک فایل متنی کپی میکنم و داخل تکست باکس پیس میزنم ذخیره نمیشه و ارور میده (برنامم بسته میشه) ممنون میشم راهنماییم کنید

  7. تیمور پاسخ دادن

    سلام با تشکر از مطالب مفیدتون. من رشته ام مهندسی نرم افزاره برای از پایگاه داده استاد گفته که باید پروژه رو با استفاده از سی شارپ و اس کیو ال بنویسید ولی راستش خیلی تو برنامه نویسی ضعیفم پروژه ام که تا یه ماه دیگه وقت داره لطفا کمکم کنید

  8. تیمور پاسخ دادن

    منتظر جوابتون هستم لطفا جواب بدین خیلی مهمه

    • یونس ابراهیمی پاسخ دادن

      سلام دوست عزیز، ایمیلتون رو چک بفرمایید

  9. محمد پاسخ دادن

    سلام . من اسمم محمده
    راستش تو دبیرستان با برنامه نویسی اشنا شدم . الان ۲۰سالمه و دوست دارم یه زبان برنامه نویسی یاد بگیرم . فقط واسه اینکه چیزی جدیدی بسازم .خواستم بدونم بهترین زبان کامپیوتر در آینده از نظر شما چیه . ممنون .

  10. امین پاسخ دادن

    سلام اقای ابراهیمی
    من برنامه نویس جاوااسکریپتم میخوام داده کاوی ، پردازش متن ، شبکه های عصبی و هوش مصنوعی کار کنم جاوااسکریپت که دستش از این موارد کوتاهه همچنین دوست دارم زبانی رو یاد بگیرم که سریع بتونم توش حرفه ای بشم می خواستم بدونم که شما چه زبانی رو پیش نهاد می کنید ایا #c میتونه تو این موضوع خوب باشه زبان برنامه نویسی Go چطور ؟
    اگر بشه با جاوااسکریپت هم خوب کار کنه که دیگه عالی میشه

  11. یونس ابراهیمی پاسخ دادن

    سلام دوست عزیز
    Lisp, Prolog برای هوش مصنوعی خوبن Python هم خوبه، اینکه سریع بخواین یاد بگیرین، همه چی بستگی به تلاشتون داره،
    زبان Go رو کلا آشنایی ندارم و نمی تونم نظر بدم.
    اینکه می فرمایید : “اگر بشه با جاوااسکریپت هم خوب کار کنه که دیگه عالی میشه” رو هم متوجه منظورتون نشدم

    • امین پاسخ دادن

      برای داده کاوی و پردازش متن prolog و lisp خوبن؟ #c مناسب نیست؟ کدومشون اسون تره؟ #c تو هوش مصنوعی چطوره ؟

      • وحید باقی پاسخ دادن

        سلام
        با اجازه از آقای ابراهیمی.شما با همه زبان های برنامه نویسی می تونید الگوریتم های هوش مصنوعی رو پیاده سازی کنید.اگر هوش مصنوعی رو خونده باشید متوجه میشید که من چی میگم.بنده خودم مثلا یادمه برای درس هوش مصنوعی الگوریتمی رو برای حل یک ماز با سی شارپ پیاده سازی کردم.
        یا مثلا دوستانم توی تیم رباتیک یک کوآدکوپتر رو با سی شارپ براش کد زدند و خیلی هم خوب کار میکرد.
        البته آقای ابراهیمی دقیقا درست میفرمایند.زبان های prolog و lisp برای هوش مصنوعی ایجاد شدند.البته شما اول باید ببینید که در چه زمینه ای میخواید کار کنید.

  12. پریناز پاسخ دادن

    سلام خسته نباشید ببخشید یه سوال کلی داشتم برای برنامه نویسی سیستم های تجاری مثل حقوق ودستمزدبرای یک کارخانه باید تمامی مطالب سایت رو مطالعه کنم و چه اندازه و چه موضوعات رو باید بلد بشم؟ببخشید سوالم کلی هست ولی مطالب سایت واقعا زیاد هستند وتسلط به همشون کار آسونی نیست ولی بدجور ذهنم رو مشغول کرده اگر یه راهنمایی کنید واقعا ممنون میشم ازمیان مطالب رایگان سایتتون تا مبحث عبارات لامبادا را مطالعه کردم ولی بعضی از مباحث رو واقعا نمیدونم چه اندازه لازم خواهد شدیانه درصورتیکه فکر میکنم بیشتر باید مباحث مربوط به دیتابیس رو باید تمرین کنم کلا اگر تواین زمینه یک مقدار اطلاعات بدید واقعا کمک بزرگی میکنید میخوام در آینده پروژه دراین زمینه بگیرم وآیا میتونم به تنهایی این کاررا انجام بدم؟یانیاز به گروه برنامه نویسی خواهم داشت دراین زمینه هیچ اطلاعی ندارم لطفا جوابم را بدید یک دنیا ممنون

    • یونس ابراهیمی پاسخ دادن

      سلام، ممنون
      در مورد سوالتون باید عرض کنم که تسلط به همه مباحث لازم نیست ولی اینکه بدونین سی شارپ دارای چه امکاناتی هست لازمه!!
      مثلا اگر شما ندونین که تو سی شارپ مبحثی مثل آرایه ها وجود داره ، ممکنه برین ۲۰ تا متغیر تعریف کنید در حالیکه این کار با آرایه فقط با یک خط کد انجام میشه!!!
      بسیاری از مباحث شاید در طول ده سال برنامه نویسی، یک بار هم ازشون استفاده نکنید، مثل اینترفیس ها!!!
      تشکیل گروه برنامه نویسی هم به خاطر کاهش زمان و خطاست. پروژه ای که شما میخواین انجام بدین رو من نمی دونم چقدر بزرگه ولی اگر در همین حد محاسبه حقوق و دستمزده خودتون تنهایی می تونید انجام بدین.
      در ضمن من نمی دونم آیا شما قبلا زبان دیگه ای رو کار کردین یا نه؟ ولی اگه از قبل هیچی کار نکردین یادگیری این زبان بین ۶ماه تا یک سال زمان میبره تا بتونید همچین برنامه ای رو بنویسین. البته این مدت زمان که عرض می کنم به خیلی چیزا بستگی داره (پشتکار، تمرکز، …).
      در کل شما مباحث رو یک بار بخونید ولی تا مبحثی رو یادنگرفتین، مبحث دیگه رو شروع نکنید، چون به هم پیوسته هستن. بعد از یه پروژه کوچیک شروع کنید و هر جا به مشکل برخوردین سوال کنید. اونوقته که کم کم راه میوفتین و نحوه نوشتن پروژه های بزرگتر رو یاد می گیرین.

  13. پریناز پاسخ دادن

    سلام ممنونم از پاسختون مطالب سایت خیلی خوب وکاربردیه وواقعا جای تشکر داره تنها چیزی که کم داره البته برای من نمونه پروژه هایی هست که بتونه کاربرد دستورات رو هم بصورت عملی نشون بده البته این نظر منه و شما تصمیم میگیرید بهرحال من بامطالب سایت شما پیش میرم هرجابمونم زحمتتون خواهم داد امیدوارم موفق باشید

    • یونس ابراهیمی پاسخ دادن

      سلام، خواهش می کنم، لطف دارین
      شما این مطالب رو بخونید و ما هم سعی می کنیم چند تا پروژه رو به صورت عملی واسه بعد از عید تو سایت قرار بدیم تا دوستانی مث شما بیشتر با کاربرد مفاهیم آشنا بشن
      موفق باشین

  14. پریناز پاسخ دادن

    واقعا لطف بزرگی میکنید چشم وحتما منتظر نمونه پروژه ها هستیم

  15. developercsharp2 پاسخ دادن

    سلام سایت جالب و با محتوایی دارید من دانشجو رشته کامپیوترم با اینکه ترم ششم هستم تو دانشگاه تا الان واقعا فهمیدم چیزی یاد نمیدن برای همین از مهر ماه شروع کردم خودم به یادگیری از C++ شروع کردم و الان برنامه های تحت کنسول را با این زبان نسبتا راحت مینویسم تقریبا در حد برنامه های متوسط و حرفه ای.
    اما این زبان به درد بازار کار زیاد نمی خوره تو ایران برای من دانشجو سوالم اینکه زبان #C به همراه asp.net برای طراحی برنامه های دسکتاپ وابسته به بستر اینترنت چطور است و حدودا چقدر asp سخته و طول میکشه یاد بگیرم و اینکه شما سوکت نویسی در #c را هم اموزش میدهید.برام مهمه اخه مخارجم زیاده به خاطر اینکه دانشگاه ام تو یه شهر دیگه است ممنون منتظرم.

  16. یونس ابراهیمی پاسخ دادن

    سلام دوست عزیز
    زبان بسیار خوبی انتخاب کردین، بعد از یادگیری سی شارپ که سینتکس واقعا راحتی داره یادگیری Asp زمان زیادی نمیبره، شاید کمتر از شش ماه،
    اینکه از قبل هم با c++ آشنا هستین خیلی عالیه و روند یادگیری رو خیلی خیلی سریع می کنه
    بازار کار هم واسه این زبان زیاده، هم تحت وب هم ویندوز و هم موبایل و اندرویید
    سوکت رو هم مسلط نیستم و تازه شروع کردم به خوندن
    موفق و موید باشین

  17. developercsharp2 پاسخ دادن

    سلام ممنون که جواب دادید یک سوال دیگم داشتم شاید کمی عجیب باشه.
    من یک برنامه مثلا با #C نوشتم ولی بعضی از قسمتهای مهم این برنامه را می خوام به زبان ++Cبنویسم به خاطر اینه ++C کدش Native Code است و امنیت بیشتری داره (نمی خوام کد های #C رو مبهم سازی کنم اخه سرعت برنامه روی بعضی کارها پایین میاد به خصوص اگه کامپیوتر اجرا کننده قدرتش کم باشه)من کد ++C را تحت یک کتابخانه بنویسم و (یا به صورت یک زیر برنامه با پسوند exe ولی یک برنامه کامل) به برنامه ای که با #Cنوشتم لینک کنم این کار را می دونم که با ++C و java میشه انجام داد و برنامه های حرفه ای معمولا اینگونه است با #C و ++Cهم میشه این کار رو کرد اگه میشه میشه بعد عید که می خواهید نمونه پروژه کامل بزارید آموزش این رو هم در سایت قرار بدهید.ممنون میشم.
    اهان یک چیز دیگه اگه میشه کلمات انگلیسی رو هم که مربوط به زبان انگلیسی میشه ولی به برنامه نویسی ربط داره(مثلا declare که میشه اعلان) اگه تو هر قسمت به صورت پاورقی قرار بدید عالی میشه اخه یک برنامه نویسی باید انگلیسی هم یاد داشته باشه تا با سوال پرسیدن مشکلاتش رو حل کنه مثلا گیت هاب.ممنون سایتون عالیه و دارم مطالبش رامطالعه
    می کنم.

    • یونس ابراهیمی پاسخ دادن

      سلام، خواهش می کنم
      قول حتمی نمیدم ولی سعی میکنم اینی که فرمودین رو هم اضافه کنم، چون الان در حال تهیه یه آپدیت های دیگه هستیم. در مورد کلمات انگلیسی کاملا حق با شما ست و باید نوشته بشن. اونارم تو متن یا پاورقی می گونجونیم. چشم

  18. سارا پاسخ دادن

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

    • یونس ابراهیمی پاسخ دادن

      سلام،
      زبان برنامه نویسی #C یک زبان بیشتر نیست، C#‎.Net و #Visual C هر دو یک زبان اند و هر دویشان هم اساسا #C اند.
      #C پیاده سازی های متفاوتی ازش وجود داره، بصورت عمومی فعلا دو پیاده سازی Net. و Mono ازش موجوده.
      Net. یک Framework ه متعلق به Microsoft ه که مجموعه امکانات و کتابخانه توابع #C محسوب میشه.
      Microsoft موقع پیاده سازی زبان #C ، اون رو با Framework ئه Net. اش ترکیب کرده. عبارت C#‎.Net اسم صحیحی نیست اما اگر جایی اشاره ای به C#‎.Net بشه منظور #C است که مایکروسافت پیاده سازی کرده که اسم اصلی این پیاده سازی #Visual C ه. در مجموع همشون یکین، لینک زیر رو ببینید:
      http://stackoverflow.com/questions/18295409/what-is-the-difference-between-c-sharp-and-visual-c

  19. سارا پاسخ دادن

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

    • یونس ابراهیمی پاسخ دادن

      سلام، خواهش می کنم
      آره، فرقی ندارن

  20. مثبت بینان شریف پاسخ دادن

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

    • یونس ابراهیمی پاسخ دادن

      سلام، ممنون بابت لطفتون

  21. غزل پاسخ دادن

    یکی از ویژگیهای سی شارپ  اینه که به برنامه نویس با استفاده از کلمه کلیدی Struct اجازه می‌دهد تا انواع مقداری User-defined را ایجاد کند. از دیدگاه برنامه‌نویسی، آنها کلاس‌های سبک وزن به نظر می‌رسند. برخلاف کلاس‌ها (که بر روی heap قرار می‌گیرند) و شبیه به انواع اولیه استاندارد مانند انواع مقداری Structtها نیز بر روی پشته قرار می‌گیرند. آنها همچنین می‌توانند قسمتی از فن یک شئ باشند، یا در یک آرایه مرتب شوند، بدون حافظه غیر مستقیمی که به طور معمول برای انواع کلاس تخصیص می‌یابد.

    • یونس ابراهیمی پاسخ دادن

      بسیار ممنون