El. knyga: C# 7.0 in a Nutshell: The Definitive Reference

  • Formatas: 1056 pages
  • Išleidimo metai: 11-Oct-2017
  • Leidėjas: O'Reilly Media, Inc, USA
  • ISBN-13: 9781491987605
Kitos knygos pagal šią temą:
  • Formatas: 1056 pages
  • Išleidimo metai: 11-Oct-2017
  • Leidėjas: O'Reilly Media, Inc, USA
  • ISBN-13: 9781491987605
Kitos knygos pagal šią temą:

DRM apribojimai

  • Kopijuoti:

    neleidžiama

  • Spausdinti:

    neleidžiama

  • Usage:

    To read this e-book you have to create Adobe ID and install Adobe Digital Editions in your computer.More info here. Ebook can be read and downloaded up to 6 devices.

When you have questions about C# 7.0 or the .NET CLR and its core Framework assemblies, this bestselling guide has the answers you need. C# has become a language of unusual flexibility and breadth since its premiere in 2000, but this continual growth means there’s still much more to learn.

Organized around concepts and use cases, this thoroughly updated sixth edition provides intermediate and advanced programmers with a concise map of C# and .NET knowledge. Dive in and discover why this Nutshell guide is considered the definitive reference on C#.

  • Get up to speed with all aspects of the C# language, from the basics of syntax and variables, to advanced topics such as pointers and operator overloading
  • Dig deep into LINQ via three chapters dedicated to the topic
  • Learn about dynamic, asynchronous, and parallel programming
  • Work with .NET features, including XML, networking, serialization, reflection, security, application domains, and code contracts
  • Explore the new C# 7.0 compiler-as-a-service, Roslyn
Preface xi
1 Introducing C# and the .NET Framework 1(14)
Object Orientation
1(1)
Type Safety
2(1)
Memory Management
3(1)
Platform Support
3(1)
C# and the CLR
3(1)
The CLR and .NET Framework
4(1)
Other Frameworks
5(3)
A Brief History of C#
8(7)
2 C# Language Basics 15(64)
A First C# Program
15(3)
Syntax
18(3)
Type Basics
21(9)
Numeric Types
30(7)
Boolean Type and Operators
37(2)
Strings and Characters
39(3)
Arrays
42(4)
Variables and Parameters
46(10)
Expressions and Operators
56(4)
Null Operators
60(2)
Statements
62(9)
Namespaces
71(8)
3 Creating Types in C# 79(58)
Classes
79(17)
Inheritance
96(9)
The object Type
105(4)
Structs
109(1)
Access Modifiers
110(2)
Interfaces
112(6)
Enums
118(3)
Nested Types
121(1)
Generics
122(15)
4 Advanced C# 137(76)
Delegates
137(9)
Events
146(7)
Lambda Expressions
153(5)
Anonymous Methods
158(1)
try Statements and Exceptions
158(9)
Enumeration and Iterators
167(6)
Nullable Types
173(6)
Extension Methods
179(2)
Anonymous Types
181(2)
Tuples (C# 7)
183(3)
Attributes
186(2)
Caller Info Attributes
188(2)
Dynamic Binding
190(8)
Operator Overloading
198(3)
Unsafe Code and Pointers
201(4)
Preprocessor Directives
205(2)
XML Documentation
207(6)
5 Framework Overview 213(16)
.NET Standard 2.0
215(2)
The CLR and Core Framework
217(4)
Applied Technologies
221(8)
6 Framework Fundamentals 229(72)
String and Text Handling
229(14)
Dates and Times
243(7)
Dates and Time Zones
250(6)
Formatting and Parsing
256(6)
Standard Format Strings and Parsing Flags
262(7)
Other Conversion Mechanisms
269(4)
Globalization
273(2)
Working with Numbers
275(3)
Enums
278(4)
The Guid Struct
282(1)
Equality Comparison
282(11)
Order Comparison
293(3)
Utility Classes
296(5)
7 Collections 301(50)
Enumeration
301(8)
The ICollection and IList Interfaces
309(4)
The Array Class
313(8)
Lists, Queues, Stacks, and Sets
321(9)
Dictionaries
330(6)
Customizable Collections and Proxies
336(7)
Plugging in Equality and Order
343(8)
8 LINQ Queries 351(56)
Getting Started
351(2)
Fluent Syntax
353(7)
Query Expressions
360(4)
Deferred Execution
364(6)
Subqueries
370(3)
Composition Strategies
373(4)
Projection Strategies
377(2)
Interpreted Queries
379(7)
LINQ to SQL and Entity Framework
386(14)
Building Query Expressions
400(7)
9 LINQ Operators 407(48)
Overview
409(3)
Filtering
412(4)
Projecting
416(12)
Joining
428(8)
Ordering
436(3)
Grouping
439(3)
Set Operators
442(1)
Conversion Methods
443(3)
Element Operators
446(2)
Aggregation Methods
448(5)
Quantifiers
453(1)
Generation Methods
454(1)
10 LINQ to XML 455(36)
Architectural Overview
455(1)
X-DOM Overview
456(4)
Instantiating an X-DOM
460(2)
Navigating and Querying
462(5)
Updating an X-DOM
467(3)
Working with Values
470(3)
Documents and Declarations
473(4)
Names and Namespaces
477(5)
Annotations
482(1)
Projecting into an X-DOM
483(8)
11 Other XML Technologies 491(22)
XmlReader
491(10)
XmlWriter
501(2)
Patterns for Using XmlReader/XmlWriter
503(4)
XSD and Schema Validation
507(3)
XSLT
510(3)
12 Disposal and Garbage Collection 513(26)
IDisposable, Dispose, and Close
513(6)
Automatic Garbage Collection
519(2)
Finalizers
521(5)
How the Garbage Collector Works
526(4)
Managed Memory Leaks
530(4)
Weak References
534(5)
13 Diagnostics 539(20)
Conditional Compilation
539(4)
Debug and Trace Classes
543(3)
Debugger Integration
546(1)
Processes and Process Threads
547(1)
StackTrace and StackFrame
548(2)
Windows Event Logs
550(3)
Performance Counters
553(5)
The Stopwatch Class
558(1)
14 Concurrency and Asynchrony 559(58)
Introduction
559(1)
Threading
560(17)
Tasks
577(8)
Principles of Asynchrony
585(5)
Asynchronous Functions in C#
590(16)
Asynchronous Patterns
606(8)
Obsolete Patterns
614(3)
15 Streams and I/O 617(44)
Stream Architecture
617(2)
Using Streams
619(14)
Stream Adapters
633(8)
Compression Streams
641(2)
Working with ZIP Files
643(1)
File and Directory Operations
644(10)
File I/O in UWP
654(3)
Memory-Mapped Files
657(2)
Isolated Storage
659(2)
16 Networking 661(40)
Network Architecture
661(3)
Addresses and Ports
664(1)
URIs
665(2)
Client-Side Classes
667(13)
Working with HTTP
680(6)
Writing an HTTP Server
686(3)
Using FTP
689(2)
Using DNS
691(1)
Sending Mail with SmtpClient
692(1)
Using TCP
692(4)
Receiving POP3 Mail with TCP
696(2)
TCP in Windows Runtime
698(3)
17 Serialization 701(40)
Serialization Concepts
701(4)
The Data Contract Serializer
705(10)
Data Contracts and Collections
715(2)
Extending Data Contracts
717(4)
The Binary Serializer
721(2)
Binary Serialization Attributes
723(3)
Binary Serialization with ISerializable
726(4)
XML Serialization
730(11)
18 Assemblies 741(36)
What's in an Assembly
741(5)
Strong Names and Assembly Signing
746(3)
Assembly Names
749(3)
Authenticode Signing
752(3)
The Global Assembly Cache
755(3)
Resources and Satellite Assemblies
758(8)
Resolving and Loading Assemblies
766(6)
Deploying Assemblies Outside the Base Folder
772(1)
Packing a Single-File Executable
773(1)
Working with Unreferenced Assemblies
774(3)
19 Reflection and Metadata 777(56)
Reflecting and Activating Types
778(7)
Reflecting and Invoking Members
785(13)
Reflecting Assemblies
798(1)
Working with Attributes
799(6)
Dynamic Code Generation
805(7)
Emitting Assemblies and Types
812(4)
Emitting Type Members
816(6)
Emitting Generic Methods and Types
822(2)
Awkward Emission Targets
824(3)
Parsing IL
827(6)
20 Dynamic Programming 833(16)
The Dynamic Language Runtime
833(2)
Numeric Type Unification
835(1)
Dynamic Member Overload Resolution
836(6)
Implementing Dynamic Objects
842(3)
Interoperating with Dynamic Languages
845(4)
21 Security 849(20)
Code Access Security
849(1)
Identity and Role Security
850(3)
Operating System Security
853(3)
Cryptography Overview
856(1)
Windows Data Protection
856(1)
Hashing
857(2)
Symmetric Encryption
859(4)
Public Key Encryption and Signing
863(6)
22 Advanced Threading 869(42)
Synchronization Overview
870(1)
Exclusive Locking
870(8)
Locking and Thread Safety
878(6)
Nonexclusive Locking
884(5)
Signaling with Event Wait Handles
889(9)
The Barrier Class
898(1)
Lazy Initialization
899(3)
Thread-Local Storage
902(2)
Interrupt and Abort
904(1)
Suspend and Resume
905(1)
Timers
906(5)
23 Parallel Programming 911(42)
Why PFX?
911(4)
PLINQ
915(13)
The Parallel Class
928(6)
Task Parallelism
934(10)
Working with AggregateException
944(2)
Concurrent Collections
946(3)
BlockingCollection<T>
949(4)
24 Application Domains 953(14)
Application Domain Architecture
953(1)
Creating and Destroying Application Domains
954(2)
Using Multiple Application Domains
956(2)
Using DoCallBack
958(1)
Monitoring Application Domains
959(1)
Domains and Threads
959(2)
Sharing Data Between Domains
961(6)
25 Native and COM Interoperability 967(20)
Calling into Native DLLs
967(1)
Type Marshaling
968(3)
Callbacks from Unmanaged Code
971(1)
Simulating a C Union
971(1)
Shared Memory
972(3)
Mapping a Struct to Unmanaged Memory
975(4)
COM Interoperability
979(2)
Calling a COM Component from C#
981(3)
Embedding Interop Types
984(1)
Primary Interop Assemblies
985(1)
Exposing C# Objects to COM
986(1)
26 Regular Expressions 987(20)
Regular Expression Basics
988(4)
Quantifiers
992(1)
Zero-Width Assertions
993(3)
Groups
996(1)
Replacing and Splitting Text
997(2)
Cookbook Regular Expressions
999(4)
Regular Expressions Language Reference
1003(4)
27 The Roslyn Compiler 1007(30)
Roslyn Architecture
1008(1)
Syntax Trees
1009(15)
Compilations and Semantic Models
1024(13)
Index 1037
Joseph Albahari is author of C# 5.0 in a Nutshell, C# 5.0 Pocket Reference and LINQ Pocket Reference. He also wrote LINQPad - the popular code scratchpad and LINQ querying utility. Ben Albahari, a former program manager at Microsoft, is the cofounder of Auditionist, a casting website for actors in the UK.