
C# Essentials
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Content
- Intro
- Table of Contents
- Preface
- Audience
- About This Book
- C# Online
- Conventions Used in This Book
- How to Contact Us
- Acknowledgments
- Ben Albahari
- Peter Drayton
- Brad Merrill
- Introduction
- C# Language
- Common Language Runtime
- Framework Class Library
- A First C# Program
- C# Language Reference
- Identifiers
- Types
- Type Instances
- Example: Building and Using Types
- Implicit and Explicit Conversions
- Categories of Types
- Value types
- Reference types
- Pointer types
- Predefined Types
- Integral types
- Floating-point types
- decimal type
- char type
- bool type
- object type
- string type
- Types and Memory
- Memory for value types
- Memory for reference types
- Value types and reference types side by side
- Unified Type System
- Simple types are value types
- Value types expand the set of simple types
- Boxing and unboxing value types
- Variables
- Definite Assignment
- Default Values
- Expressions and Operators
- Operator Precedence
- Arithmetic Overflow Check Operators
- Statements
- Expression Statements
- Declaration Statements
- Empty Statements
- Selection Statements
- if-else statement
- switch statement
- Loop Statements
- while loops
- do-while loops
- for loops
- foreach loops
- jump Statements
- break statement
- continue statement
- goto statement
- return statement
- throw statement
- lock statement
- using statement
- Organizing Types
- Files
- Namespaces
- Nesting namespaces
- Using a type with its fully qualified name
- using keyword
- Aliasing types and namespaces
- Global namespace
- Inheritance
- Class Conversions
- as operator
- is operator
- Polymorphism
- Virtual Function Members
- Abstract Classes and Members
- Sealed Methods and Sealed Classes
- Hiding Inherited Members
- Versioning Virtual Function Members
- Access Modifiers
- Restrictions on Access Modifiers
- Classes and Structs
- Differences Between Classes and Structs
- Instance and Static Members
- Fields
- Constants
- Versioning with constants
- Properties
- Indexers
- Methods
- Signatures
- Passing arguments by value
- ref modifier
- out modifier
- params modifier
- Overloading methods
- Operators
- Implementing value equality
- Logically paired operators
- Custom implicit and explicit conversions
- Three-state logic operators
- Indirectly overloadable operators
- Instance Constructors
- Calling base class constructors
- Field initialization order
- Constructor access modifiers
- Static Constructors
- Base class constructor order
- Static field initialization order
- Nondeterminism of static constructor calls
- Self-Referencing
- this keyword
- base keyword
- Destructors and Finalizers
- Nested Types
- Interfaces
- Defining an Interface
- Implementing an Interface
- Using an Interface
- Extending an Interface
- Explicit Interface Implementation
- Reimplementing an Interface
- Interface Conversions
- Arrays
- Multidimensional Arrays
- Local and Field Array Declarations
- Array Length and Rank
- Bounds Checking
- Array Conversions
- Enums
- Enum Operators
- Enum Conversions
- Delegates
- Multicast Delegates
- Delegates Compared with Function Pointers
- Delegates Compared with Interfaces
- Events
- Defining a Delegate for an Event
- Storing Data for an Event with EventArgs
- Declaring and Firing an Event
- Acting on an Event with Event Handlers
- Event Accessors
- try Statements and Exceptions
- try Statement
- Exceptions
- catch
- Omitting the exception variable
- Omitting the catch expression
- Specifying multiple catch clauses
- finally
- Key Properties of the System.Exception Class
- Attributes
- Attribute Classes
- Named and Positional Parameters
- Explicitly Specifying Attribute Targets
- Specifying Multiple Attributes
- Unsafe Code and Pointers
- Pointer Types
- Unsafe Code
- The fixed Statement
- Pointer to Member Operator
- The stackalloc Keyword
- void*
- Pointers to Unmanaged Code
- Preprocessor Directives
- Preprocessor Directives
- XML Documentation
- C/C++-Style Comments
- Documentation Comments
- XML Documentation Files
- Predefined XML Tags
- User-Defined Tags
- Type or Member Cross-References
- Programming the .NET Framework
- Common Types
- Object Class
- Creating FCL-friendly types
- ICloneable Interface
- IComparable Interface
- IFormattable Interface
- Math
- Language Support for Math
- Special Types and Operators
- Math Class
- Random Class
- Strings
- String Class
- Immutability of Strings
- String Interning
- Formatting Strings
- Indexing Strings
- Encoding Strings
- StringBuilder Class
- Collections
- Concrete Collection Classes
- ArrayList class
- BitArray class
- Hashtable class
- Queue class
- SortedList class
- Stack class
- StringCollection class
- Collection Interfaces
- IEnumerable interface
- IEnumerator interface
- ICollection interface
- IComparer interface
- IList interface
- IDictionary interface
- IDictionaryEnumerator interface
- IHashCodeProvider interface
- Regular Expressions
- Regex Class
- Match and MatchCollection Classes
- Group Class
- Capture and CaptureCollection Classes
- Using Regular Expressions
- Input/Output
- Streams and Backing Stores
- Abstract Stream class
- Concrete Stream-derived classes
- Encapsulating raw streams
- Abstract TextReader/TextWriter classes
- StreamReader and StreamWriter classes
- StringReader and StringWriter classes
- Directories and Files
- Networking
- Network Programming Models
- Generic Request/Response Architecture
- HTTP-Specific Support
- Adding New Protocol Handlers
- Using TCP, UDP, and Sockets
- Using DNS
- Threading
- Thread Synchronization
- The lock statement
- Pulse and Wait operations
- Deadlocks
- Atomic operations
- Common Thread Types
- Monitor Class
- Enter and Exit methods
- TryEnter methods
- Wait methods
- Pulse and PulseAll methods
- Assemblies
- Elements of an Assembly
- Packaging
- Deployment
- Versioning
- Type Resolution
- Security Permissions
- Reflection
- Type Hierarchy
- Types, members, and nested types
- Assemblies and modules
- AppDomains
- Retrieving the Type for an Instance
- Retrieving a Type Directly
- Reflecting Over a Type Hierarchy
- Late Binding to Types
- Activation
- Advanced Uses of Reflection
- Creating New Types at Runtime
- Custom Attributes
- Language Support for Custom Attributes
- Compiler Support for Custom Attributes
- Runtime Support for Custom Attributes
- Predefined Attributes
- AttributeUsage attribute
- Conditional attribute
- Obsolete attribute
- CLSCompliant attribute
- Serializable attribute
- NonSerialized attribute
- Defining a New Custom Attribute
- Retrieving a Custom Attribute at Runtime
- Automatic Memory Management
- The Garbage Collector
- Optimization Techniques
- Finalizers
- Dispose and Close Methods
- Interop with Native DLLs
- Marshaling Common Types
- Marshaling Classes and Structs
- In and Out Marshaling
- Callbacks from Unmanaged Code
- Predefined Interop Support Attributes
- DllImport attribute
- StructLayout attribute
- FieldOffset attribute
- MarshalAs attribute
- In attribute
- Out attribute
- Interop with COM
- Binding COM and C# Objects
- Exposing COM Objects to C#
- Exposing C# Objects to COM
- COM Mapping in C#
- Common COM Interop Support Attributes
- ComVisible attribute
- DispId attribute
- ProgId attribute
- Guid attribute
- InterfaceType attribute
- ComRegisterFunction attribute
- Framework Class Library Overview
- Core Types
- Text
- Collections
- Streams and I/O
- Networking
- Threading
- Security
- Reflection and Metadata
- Assemblies
- Serialization
- Remoting
- Web Services
- Data Access
- XML
- Graphics
- Rich Client Applications
- Web-Based Applications
- Globalization
- Configuration
- Advanced Component Services
- Diagnostics and Debugging
- Interoperating with Unmanaged Code
- Compiler and Tool Support
- Runtime Facilities
- Native OS Facilities
- Undocumented Types
- Essential .NET Tools
- C# Keywords
- Regular Expressions
- Format Specifiers
- Picture Format Specifiers
- DateTime Format Specifiers
- Data Marshaling
- Working with Assemblies
- Building Shareable Assemblies
- Building Modules
- Linking Modules to Assemblies
- Building with Your New Assemblies
- Sharing Assemblies
- Managing the Global Assembly Cache
- Using nmake
- Namespaces and Assemblies
- Index
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.