C# is also available in non-Microsoft implementations (most notably, Mono).
Versions 1.0/1.2 and 2.0 of C# were submitted and approved as both ECMA and ISO/IEC standards. As of December 2010, there are no ECMA or ISO/IEC specifications for C# 3.0 and 4.0, however language specifications are available from Microsoft (3.0 and 4.0 respectively).
What is C#?
The language's typeC# is a multi-system was originally staticparadigm, with only explicit variable declarations allowed. Howevermanaged, the introduction of var
(C# 3.0) and dynamic
(C# 4.0) allow it to use type-inference for implicit variable typingstrongly typed, and to consume dynamic typegarbage-systemscollected, respectively. Delegates (especially with lexical-closure support for anonymous-methods (C# 2.0) and lambda-expressions (C# 3.0)) allow the language to be used for functional programming.
Compilation is usually to the Common Intermediate Language (CIL), which is then JIT-compiled to native code (and cached) during execution language created by Microsoft in conjunction with the Common Language Runtime (CLR); however, options like Ngen (.NET) and AOT (Mono) mean this isn't the only option. Additionally, some frameworks (e.g. the Micro Framework) act as CIL interpreters, platform; not to be confused with no JIT.
Perhaps unusually, generics in C# are provided (in part) by the runtime, unlike (for comparison) C++ templates,C or Java's generics (which use type-erasure).
With the combination of Microsoft C++.NET for Windows (desktop/server) C# supports imperative, Mono (desktop/server/mobile)declarative, Silverlight / Moonlight (browser/mobile)functional, Compact Framework (mobile)generic, and Micro Framework (embedded devices)object-oriented, itcomponent-oriented and meta programming disciplines. C# is also available for a wide range of platformsin non-Microsoft implementations.
Usage
In November 2014, Microsoft announced the decision to Open Source .NET with Apache 2.0 Open Source licensing and to begin supporting iOS, LinuxWhen you ask a question, and Android in additionbe sure to Windowsinclude any relevant source code as platforms for .NET 2015 (5.0) and ASP.NET 5.0. As a result C# can now target all these platforms using a single code base through Visual Studio 2015 (currently available for preview)minimal, complete, and verifiable example.
Hello World
using System;
class Hello
{
static void Main()
{
Console.WriteLine("Hello, World");
}
}
FAQs on Stack Overflow
- What are the correct version numbers for C#?
- Why is
Random
giving the same results every time? - Captured variables in loops
- In C#, is it possible to cast a
List<Child>
toList<Parent>
? - Does C# pass objects by reference?
- Why does the compiler complain about my conditional expression (
a == b ? x : y
)? - Why do I get a
NullReferenceException
? (Object reference not set to instance of object) - http://stackoverflow.com/questions/24812679
- What's new in C# 4.0?
- What's new in .NET 4.5?
- What's new for C# in Visual Studio 2012?
Resources If there are any compiler errors, be sure to indicate:
- Specification Which compiler &/or IDE you are using, including its version.
- Wikipedia Article Which C# language version you are using.
- Eric Lippert's old blog || Exact error messages, including the lines on which they occur Eric Lippert's new blog
- Jon Skeet's blog
- James Michael Hare's C#/.NET Little Wonders & Little Pitfalls series
- Programming Guide
- Getting Started with Visual C#
- C# Fundamentals: Development for Absolute Beginners
- Visual C# .Net for Beginners
- csharp.2000things
- Dot Net Perls(mark those lines with comments)
Books Because Unity has its own tag & uses its own version C#, you do not need to use the c# tag when asking general Unity questions.
Stack Exchange Resources
- CLR via C#
- C# 5.0 in a Nutshell: The Definitive Reference
- C# in Depth
- Accelerated C#
- Head First C#
- The C# Programming Language (3rd Edition, 4th Edition)
- Framework Design Guidelines
- Essential C# (4.0 (3rd Edition), 5.0 (4th Edition))
- Pro C# 2010 and the .NET 4 Platform
- [MCTS Self-Paced Training Kit (Exam 70-536): Microsoft® .NET Framework 2.0 Foundation] 33
- C# How to Program
- Visual C# .NET Step by Step
- Programming Microsoft Windows with C#
- C# 4.0 Unleashed
- Pro C# 5.0 and the .NET 4.5 Framework (Professional Apress)
- Learning C# 3.0
- Starting out with Visual C# 2012 (with CD-Rom) (3rd Edition)
- Programming C# 5.0 — Building Windows 8, Web, and Desktop Applications for the .NET 4.5 Framework
- C# 4.0 The Complete Reference
- [C# Design Pattern Essentials] 43Stack Overflow C# Documentation
- Programming C# 5.0 - Building Windows 8, Web, and Desktop Applications for the .NET 4.5 FrameworkStack Overflow C# Chat Room