C# language
C# syntax is highly expressive, yet it's also simple and easy to learn. The curly brace syntax of C# will be instantly
recognizable to anyone familiar with C, C++, Java or JavaScript. Developers who know any of these languages are
typically able to work productively in C# within a short time. C# provides powerful features such as nullable types,
delegates, lambda expressions, pattern matching, and safe direct memory access. C# supports generic methods
and types, which provide increased type safety and performance. C# provides iterators, which enable implementers
of collection classes to define custom behaviors for client code. Language-Integrated Query (LINQ) expressions
make the strongly typed query a first-class language construct.
As an object-oriented language, C# supports the concepts of encapsulation, inheritance, and polymorphism. A class
may inherit directly from one parent class, but it may implement any number of interfaces. Methods that override
virtual methods in a parent class require the override keyword as a way to avoid accidental redefinition. In C#, a
struct is like a lightweight class; it's a stack-allocated type that can implement interfaces but doesn't support
inheritance. C# also provides records, which are class types whose purpose is primarily storing data values.
C# makes it easy to develop software components through several innovative language constructs, including:
Encapsulated method signatures called delegates, which enable type-safe event notifications.
Properties, which serve as accessors for private member variables.
Attributes, which provide declarative metadata about types at run time.
Inline XML documentation comments.
Language-Integrated Query (LINQ), which provides built-in query capabilities across different kinds of data
sources.
Pattern matching, which enables control flow by inspecting data types and values.
You interact with native components through a process called "Interop". Interop enables C# programs to do almost
anything that a native C++ application can do. C# even supports pointers and the concept of "unsafe" code for
those cases in which direct memory access is critical.
The C# build process is simple compared to C and C++ and more flexible than in Java. There are no separate
header files, and no requirement that methods and types be declared in a particular order. A C# source file may
define any number of classes, structs, interfaces, and events.
The following are additional C# resources:
For a good general introduction to the language, see the Tour of C#.
For detailed information about specific aspects of the C# language, see the C# Reference.
For more information about LINQ, see LINQ (Language-Integrated Query).
网友评论