Essential C♯ 4.0

Essential C# 4.0 is a well-organized,“no-fluff” guide to all versions of C# for programmers at all levels of C# experience. This fully updated edition shows how to make the most of C# 4.0’s new features and programming patterns to write code that is simple, yet powerful. This edition contains two n...

Descripción completa

Detalles Bibliográficos
Otros Autores: Michaelis, Mark Author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: [Place of publication not identified] Addison Wesley 2010
Edición:3rd edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009629031706719
Tabla de Contenidos:
  • Cover
  • Contents
  • Contents of C# 4.0 Topics
  • Figures
  • Tables
  • Foreword
  • Preface
  • Acknowledgments
  • About the Author
  • 1 Introducing C#
  • Hello, World
  • Compiling and Running the Application
  • C# Syntax Fundamentals
  • Type Definition
  • Main
  • Statements and Statement Delimiters
  • Whitespace
  • Working with Variables
  • Data Types
  • Declaring a Variable
  • Assigning a Variable
  • Using a Variable
  • Console Input and Output
  • Getting Input from the Console
  • Writing Output to the Console
  • Comments
  • Managed Execution and the Common Language Infrastructure
  • C# and .NET Versioning
  • Common Intermediate Language and ILDASM
  • Summary
  • 2 Data Types
  • Fundamental Numeric Types
  • Integer Types
  • Floating-Point Types (float, double)
  • Decimal Type
  • Literal Values
  • More Fundamental Types
  • Boolean Type (bool)
  • Character Type (char)
  • Strings
  • null and void
  • null
  • The void Nontype
  • Categories of Types
  • Value Types
  • Reference Types
  • Nullable Modifier
  • Conversions between Data Types
  • Explicit Cast
  • Implicit Conversion
  • Type Conversion without Casting
  • Arrays
  • Declaring an Array
  • Instantiating and Assigning Arrays
  • Using an Array
  • Strings as Arrays
  • Common Errors
  • Summary
  • 3 Operators and Control Flow
  • Operators
  • Plus and Minus Unary Operators (+, -)
  • Arithmetic Binary Operators (+, -, *, /, %)
  • Parenthesis Operator
  • Assignment Operators (+=, -=, *=, /=, %=)
  • Increment and Decrement Operators (++,
  • )
  • Constant Expressions (const)
  • Introducing Flow Control
  • if Statement
  • Nested if
  • Code Blocks ({})
  • Scope and Declaration Space
  • Boolean Expressions
  • Relational and Equality Operators
  • Logical Boolean Operators
  • Logical Negation Operator (!)
  • Conditional Operator (?)
  • Null Coalescing Operator (??)
  • Bitwise Operators (>, |, &, ^, ~).
  • Shift Operators (>, >=)
  • Bitwise Operators (&, |, ^)
  • Bitwise Assignment Operators (&=, |=, ^=)
  • Bitwise Complement Operator (~)
  • Control Flow Statements, Continued
  • The while and do/while Loops
  • The for Loop
  • The foreach Loop
  • The switch Statement
  • Jump Statements
  • The break Statement
  • The continue Statement
  • The goto Statement
  • C# Preprocessor Directives
  • Excluding and Including Code (#if, #elif, #else, #endif)
  • Defining Preprocessor Symbols (#define, #undef)
  • Emitting Errors and Warnings (#error, #warning)
  • Turning Off Warning Messages (#pragma)
  • nowarn: Option
  • Specifying Line Numbers (#line)
  • Hints for Visual Editors (#region, #endregion)
  • Summary
  • 4 Methods and Parameters
  • Calling a Method
  • Namespace
  • Type Name
  • Scope
  • Method Name
  • Parameters
  • Method Return
  • Statement versus Method Call
  • Declaring a Method
  • Parameter Declaration
  • Method Return Declaration
  • The using Directive
  • Aliasing
  • Returns and Parameters on Main()
  • Parameters
  • Value Parameters
  • Reference Parameters (ref)
  • Output Parameters (out)
  • Parameter Arrays (params)
  • Recursion
  • Method Overloading
  • Optional Parameters
  • Basic Error Handling with Exceptions
  • Trapping Errors
  • Reporting Errors Using a throw Statement
  • Summary
  • 5 Classes
  • Declaring and Instantiating a Class
  • Instance Fields
  • Declaring an Instance Field
  • Accessing an Instance Field
  • Instance Methods
  • Using the this Keyword
  • Access Modifiers
  • Properties
  • Declaring a Property
  • Automatically Implemented Properties
  • Naming Conventions
  • Using Properties with Validation
  • Read-Only and Write-Only Properties
  • Access Modifiers on Getters and Setters
  • Properties as Virtual Fields
  • Properties and Method Calls Not Allowed as ref or out Parameter Values
  • Constructors.
  • Declaring a Constructor
  • Default Constructors
  • Object Initializers
  • Overloading Constructors
  • Constructor Chaining: Calling another Constructor Using this
  • Static Members
  • Static Fields
  • Static Methods
  • Static Constructors
  • Static Properties
  • Static Classes
  • Extension Methods
  • Encapsulating the Data
  • const
  • readonly
  • Nested Classes
  • Partial Classes
  • Defining a Partial Class
  • Partial Methods
  • Summary
  • 6 Inheritance
  • Derivation
  • Casting between Base and Derived Types
  • private Access Modifier
  • protected Access Modifier
  • Extension Methods
  • Single Inheritance
  • Sealed Classes
  • Overriding the Base Class
  • virtual Modifier
  • new Modifier
  • sealed Modifier
  • base Member
  • Constructors
  • Abstract Classes
  • All Classes Derive from System.Object
  • Verifying the Underlying Type with the is Operator
  • Conversion Using the as Operator
  • Summary
  • 7 Interfaces
  • Introducing Interfaces
  • Polymorphism through Interfaces
  • Interface Implementation
  • Explicit Member Implementation
  • Implicit Member Implementation
  • Explicit versus Implicit Interface Implementation
  • Converting between the Implementing Class and Its Interfaces
  • Interface Inheritance
  • Multiple Interface Inheritance
  • Extension Methods on Interfaces
  • Implementing Multiple Inheritance via Interfaces
  • Versioning
  • Interfaces Compared with Classes
  • Summary
  • 8 Value Types
  • Structs
  • Initializing structs
  • Using the default Operator
  • Inheritance and Interfaces with Value Types
  • Boxing
  • Enums
  • Type Compatibility between Enums
  • Converting between Enums and Strings
  • Enums as Flags
  • Summary
  • 9 Well-Formed Types
  • Overriding object Members
  • Overriding ToString()
  • Overriding GetHashCode()
  • Overriding Equals()
  • Guidelines for Implementing Equality
  • Operator Overloading.
  • Comparison Operators (==, !=, , =)
  • Binary Operators (+, -, *, /, %, &, |, ^, >)
  • Combining Assignment with Binary Operators (+=, -=, *=, /=, %=, &=...)
  • Conditional Logical Operators (&&, ||)
  • Unary Operators (+, -, !, ~, ++,
  • , true, false)
  • Conversion Operators
  • Guidelines for Conversion Operators
  • Referencing Other Assemblies
  • Changing the Assembly Target
  • Referencing an Assembly
  • Encapsulation of Types
  • Defining Namespaces
  • Namespace Alias Qualifier
  • XML Comments
  • Associating XML Comments with Programming Constructs
  • Generating an XML Documentation File
  • Garbage Collection
  • Weak References
  • Resource Cleanup
  • Finalizers
  • Deterministic Finalization with the using Statement
  • Garbage Collection and Finalization
  • Resource Utilization and Finalization Guidelines
  • Lazy Initialization
  • Summary
  • 10 Exception Handling
  • Multiple Exception Types
  • Catching Exceptions
  • General Catch Block
  • Guidelines for Exception Handling
  • Defining Custom Exceptions
  • Summary
  • 11 Generics
  • C# without Generics
  • Introducing Generic Types
  • Using a Generic Class
  • Defining a Simple Generic Class
  • Benefits of Generics
  • Type Parameter Naming Guidelines
  • Generic Interfaces and Structs
  • Defining a Constructor and a Finalizer
  • Specifying a Default Value
  • Multiple Type Parameters
  • Arity in Abundance
  • Nested Generic Types
  • Constraints
  • Interface Constraints
  • Base Class Constraints
  • struct/class Constraints
  • Multiple Constraints
  • Constructor Constraints
  • Constraint Inheritance
  • Generic Methods
  • Type Inferencing
  • Specifying Constraints
  • Covariance and Contravariance
  • Enabling Covariance with the out Type Parameter Modifier in C# 4.0
  • Enabling Contravariance with the in Type Parameter Modifier in C# 4.0.
  • Support for Parameter Covariance and Contravariance in Arrays
  • Generic Internals
  • Instantiating Generics Based on Value Types
  • Instantiating Generics Based on Reference Types
  • Summary
  • 12 Delegates and Lambda Expressions
  • Introducing Delegates
  • Defining the Scenario
  • Delegate Data Types
  • Delegate Internals
  • Defining a Delegate Type
  • Instantiating a Delegate
  • Anonymous Methods
  • System-Defined Delegates: Func
  • Lambda Expressions
  • Statement Lambdas
  • Expression Lambdas
  • Outer Variables
  • Expression Trees
  • Summary
  • 13 Events
  • Coding the Observer Pattern with Multicast Delegates
  • Defining Subscriber Methods
  • Defining the Publisher
  • Hooking Up the Publisher and Subscribers
  • Invoking a Delegate
  • Check for null
  • Delegate Operators
  • Sequential Invocation
  • Error Handling
  • Method Returns and Pass-by-Reference
  • Events
  • Why Events?
  • Declaring an Event
  • Coding Conventions
  • Generics and Delegates
  • Customizing the Event Implementation
  • Summary
  • 14 Collection Interfaces with Standard Query Operators
  • Anonymous Types and Implicitly Typed Local Variables
  • Anonymous Types
  • Implicitly Typed Local Variables (var)
  • More about Anonymous Types and Implicit Local Variables
  • Collection Initializers
  • What Makes a Class a Collection: I Enumerable
  • foreach with Arrays
  • foreach with I Enumerable
  • Do Not Modify Collections during foreach Iteration
  • Standard Query Operators
  • Filtering with Where()
  • Projecting with Select()
  • Counting Elements with Count()
  • Deferred Execution
  • Sorting with OrderBy() and ThenBy()
  • Performing an Inner Join with Join()
  • Grouping Results with GroupBy()
  • Implementing a One-to-Many Relationship with GroupJoin()
  • Calling SelectMany()
  • More Standard Query Operators
  • Summary
  • 15 LINQ with Query Expressions.
  • Introducing Query Expressions.