Opis książki: C# 10 in a Nutshell
When you have questions about C# 10 or .NET 6, this best-selling guide has the answers you need. C# is a language of unusual flexibility and breadth, and with its continual growth, there's always so much more to learn. In the tradition of O'Reilly's Nutshell guides, this thoroughly updated edition is simply the best one-volume reference to the C# language available today.
Organized around concepts and use cases, this comprehensive and complete reference provides intermediate and advanced programmers with a concise map of C# and .NET that also plumbs significant depths.
- Get up to speed on C#, from syntax and variables to advanced topics such as pointers, closures, and patterns
- Dig deep into LINQ, with three chapters dedicated to the topic
- Explore concurrency and asynchrony, advanced threading, and parallel programming
- Work with .NET features, including regular expressions, networking, assemblies, spans, reflection, and cryptography
Wybrane bestsellery
-
Po przyswojeniu zagadnień związanych z językiem C# i aplikacjami konsoli dowiesz się, jak tworzyć praktyczne aplikacje i usługi z wykorzystaniem biblioteki ASP.NET Core, a także wzorzec MVC i technologię Blazor. Zapoznasz się z metodami stosowania wielozadaniowości do poprawy wydajności i skalowa...
C# 10 i .NET 6 dla programistów aplikacji wieloplatformowych. Twórz aplikacje, witryny WWW oraz serwisy sieciowe za pomocą ASP.NET Core 6, Blazor i EF Core 6 w Visual Studio 2022 i Visual Studio Code. Wydanie VI C# 10 i .NET 6 dla programistów aplikacji wieloplatformowych. Twórz aplikacje, witryny WWW oraz serwisy sieciowe za pomocą ASP.NET Core 6, Blazor i EF Core 6 w Visual Studio 2022 i Visual Studio Code. Wydanie VI
(0,00 zł najniższa cena z 30 dni)100.17 zł
159.00 zł(-37%) -
Książka tak, napisana z myślą o doświadczonych programistach, zawiera wiele przykładowych programów, które pozwolą Ci poznać praktyczne tajniki języka, takie jak typy ogólne, LINQ oraz techniki programowania asynchronicznego. Następnie poznasz najnowsze możliwości platformy .NET 6 oraz języka C# ...
C# 10. Programowanie. Tworzenie aplikacji Windows, internetowych i biurowych C# 10. Programowanie. Tworzenie aplikacji Windows, internetowych i biurowych
(0,00 zł najniższa cena z 30 dni)108.16 zł
169.00 zł(-36%) -
C# to obecnie jeden z najważniejszych, najpopularniejszych i najbardziej wszechstronnych obiektowych języków programowania, nic więc dziwnego, że na rynku dostępnych jest mnóstwo publikacji na jego temat. Niestety, są to przeważnie opasłe tomy, zupełnie nieprzydatne jako pomoc w codziennej pracy.(0,00 zł najniższa cena z 30 dni)
8.67 zł
17.00 zł(-49%) -
Jeśli uczysz się programowania od niedawna i chcesz tworzyć aplikacje desktopowe przy użyciu technologii WPF, to jest to książka dla Ciebie! Z jej pomocą szybko rozpoczniesz pisanie programów. W ten sposób, tworząc kolejne aplikacje okienkowe, będziesz poznawać kluczowe możliwości tej platformy.
Wprowadzenie do WPF. Tworzenie aplikacji w WPF przy użyciu XAML i C# Wprowadzenie do WPF. Tworzenie aplikacji w WPF przy użyciu XAML i C#
(0,00 zł najniższa cena z 30 dni)24.34 zł
39.90 zł(-39%) -
Nie trzeba siedzieć po uszy w programowaniu, by zauważyć pewną regułę: lwia część książek poświęconych temu zagadnieniu została napisana w podobny sposób. I nie chodzi o styl, środowisko czy język, lecz o strukturę. Prawidłowość tę zauważył Łukasz Sosna, który do zagadnienia programowania w język...
Visual Studio 2022, C# i .NET. Programowanie kontrolek Visual Studio 2022, C# i .NET. Programowanie kontrolek
(0,00 zł najniższa cena z 30 dni)31.94 zł
49.90 zł(-36%) -
Ta książka jest przystępnie napisanym podręcznikiem dla początkujących programistów. Dokładne omówienie koncepcji programistycznych umożliwi zrozumienie zasad pisania kodu C#, działania środowiska .NET Framework czy koncepcji relacyjnych baz danych. Dzięki książce można bardzo szybko zacząć tworz...
Visual C# dla zupełnie początkujących. Owoce programowania. Wydanie IV Visual C# dla zupełnie początkujących. Owoce programowania. Wydanie IV
(0,00 zł najniższa cena z 30 dni)90.89 zł
149.00 zł(-39%) -
C# - wieloparadygmatowy język programowania opracowany przez firmę Microsoft - z roku na rok zdobywa coraz większą popularność wśród profesjonalistów z branży IT. Przejrzysta struktura kodu, wygoda stosowania, potężne możliwości i wsparcie ze strony platformy .NET - wszystko to sprawia, że są duż...
C#. Zadania z programowania z przykładowymi rozwiązaniami. Wydanie III C#. Zadania z programowania z przykładowymi rozwiązaniami. Wydanie III
(0,00 zł najniższa cena z 30 dni)27.84 zł
44.90 zł(-38%) -
Język C# cechują dojrzałość, prostota i nowoczesność. Służy on do wielu celów: do tworzenia aplikacji sieciowych, aplikacji działających w chmurze, oprogramowania dla urządzeń mobilnych i internetu rzeczy. Choć pozwala na pisanie kodu bezpiecznego, przejrzystego, wydajnego i prostego w konserwacj...
Czysty kod w C#. Techniki refaktoryzacji i najlepsze praktyki Czysty kod w C#. Techniki refaktoryzacji i najlepsze praktyki
(0,00 zł najniższa cena z 30 dni)55.18 zł
89.00 zł(-38%) -
Programowanie wielowątkowe pozwala wykonywać różne czynności z wykorzystaniem więcej niż jednego wątku. W efekcie zwiększa się wydajność operacji, które były ograniczone parametrami procesora. W dodatku dzięki zastosowaniu programowania wielowątkowego zadania można wykonywać w tle, bez pogorszeni...(0,00 zł najniższa cena z 30 dni)
19.24 zł
37.00 zł(-48%) -
To kolejne wydanie lubianego samouczka, dzięki któremu w ramach 24 godzinnych lekcji przyswoisz solidne podstawy programowania. Zrozumiesz, jak działają programy, i nauczysz się reguł stosowanych przez profesjonalistów przy ich projektowaniu. Dowiesz się, jak wygląda świat programistów i na czym ...
Programowanie dla początkujących w 24 godziny. Wydanie IV Programowanie dla początkujących w 24 godziny. Wydanie IV
(0,00 zł najniższa cena z 30 dni)35.88 zł
69.00 zł(-48%)
O autorze książki
1 Joseph AlbahariJoseph Albahari jest autorem kilku cenionych książek o programowaniu. Jest też twórcą LINQPada, popularnego narzędzia pomocnego w implementowaniu zapytań do baz danych w LINQ.
Joseph Albahari - pozostałe książki
-
Ta książka ma pełnić funkcję użytecznej ściągawki zawierającej wszystko, co potrzebne do pracy z C#. Została pomyślana tak, aby maksymalnie ułatwić przeglądanie i odnajdywanie potrzebnych treści — i tym samym wesprzeć pracę każdego, komu zależy na sprawnym pisaniu kodu w języku C#. Jest też...(29.94 zł najniższa cena z 30 dni)
31.44 zł
49.90 zł(-37%) -
To zaktualizowane wydanie znakomitego podręcznika dla programistów. Zawiera zwięzłe i dokładne informacje na temat języka C#, Common Language Runtime (CLR), a także biblioteki klas .NET 5 Base Class Library (BCL). Nowe składniki języka C# 9.0 i związanej z nim platformy specjalnie oznaczono, dzię...(107.40 zł najniższa cena z 30 dni)
112.77 zł
179.00 zł(-37%) -
Looking for quick answers for using C# 10? This tightly focused and practical guide tells you exactly what you need to know without long intros or bloated samples. Succinct and easy to browse, this pocket reference is an ideal quick source of information. If you know Java, C++, or an earlier C# v...(84.92 zł najniższa cena z 30 dni)
84.92 zł
99.90 zł(-15%) -
W tym zwięzłym kompendium znajdziesz wszystko, co jest potrzebne do programowania w C#. Książka została wydana jako leksykon, co bardzo ułatwia wyszukiwanie potrzebnych treści. Stanowi nieocenioną pomoc dla osób, które znają C# albo C++ lub Javę i postanowiły nabrać wprawy w pracy z najnowszą wer...(29.40 zł najniższa cena z 30 dni)
30.38 zł
49.00 zł(-38%) -
To kolejne, przejrzane i zaktualizowane wydanie doskonałego podręcznika dla programistów. Znalazły się tu zwięzłe i dokładne informacje na temat języka C#, Common Language Runtime (CLR) oraz platformy .NET Core. Zaprezentowano precyzyjne opisy pojęć i konkretne przypadki użycia, a poszczególne za...(74.50 zł najniższa cena z 30 dni)
77.48 zł
149.00 zł(-48%) -
Ta książka jest zwięzłym kompendium, w którym znajdziesz wszystko, co jest potrzebne do pracy z C#, podane w formie poręcznej ściągi. Została pomyślana w taki sposób, aby maksymalnie ułatwić przeglądanie i odnajdywanie potrzebnych treści — by wesprzeć pracę każdego, komu zależy na sprawnym ...(19.95 zł najniższa cena z 30 dni)
20.75 zł
39.90 zł(-48%) -
Niniejsza książka jest kolejnym, uzupełnionym i zaktualizowanym wydaniem cenionego kompendium wiedzy o C#, CLR oraz o związanej z C# platformie. Napisano ją z myślą o programistach na co najmniej średnim poziomie zaawansowania. W zrozumiały, a równocześnie dogłębny sposób wyjaśniono takie trudne ...(77.40 zł najniższa cena z 30 dni)
78.69 zł
129.00 zł(-39%) -
C# od dawna jest dojrzałym, uniwersalnym i efektywnym językiem programowania, dzięki któremu można sprawnie pisać kod bezpieczny, przejrzysty i wydajny. Założeniami, które przyświecały twórcom C#, jest obiektowość i kontrola typów, jednak przede wszystkim język ten ma być prosty w stosowaniu. Mim...(20.94 zł najniższa cena z 30 dni)
21.29 zł
34.90 zł(-39%) -
Niniejsza książka jest zwięzłym kompendium wiedzy o C#, CLR oraz o związanej z C# platformie. Napisano ją z myślą o programistach na co najmniej średnim poziomie zaawansowania. W zrozumiały, a równocześnie dogłębny sposób wyjaśniono takie trudne kwestie, jak współbieżność, bezpieczeństwo i domeny...(64.50 zł najniższa cena z 30 dni)
64.50 zł
129.00 zł(-50%) -
Niniejsza książka jest zwięzłym i praktycznym kompendium. Zawiera dokładnie to, co powinna — bez nudnych wywodów i niepotrzebnych dywagacji. Może posłużyć jako podręcznik do nauki C# lub jako poręczna ściągawka, pozwalająca na szybkie odnalezienie odpowiedzi. Jeśli tylko znasz podstawy prog...(17.45 zł najniższa cena z 30 dni)
17.45 zł
34.90 zł(-50%)
Ebooka przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video zobaczysz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP4 (pliki spakowane w ZIP)
Szczegóły książki
- ISBN Ebooka:
- 978-10-981-2191-4, 9781098121914
- Data wydania ebooka:
-
2022-02-15
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@helion.pl.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 4.8MB
- Rozmiar pliku Mobi:
- 14.3MB
- Kategorie:
Programowanie » C# - Programowanie
Spis treści książki
- Preface
- Intended Audience
- How This Book Is Organized
- What You Need to Use This Book
- Conventions Used in This Book
- Using Code Examples
- OReilly Online Learning
- How to Contact Us
- Acknowledgments
- 1. Introducing C# and .NET
- Object Orientation
- Type Safety
- Memory Management
- Platform Support
- CLRs, BCLs, and Runtimes
- Common Language Runtime
- Base Class Library
- Runtimes
- .NET 6
- MAUI
- UWP and WinUI 3
- .NET Framework
- Niche Runtimes
- A Brief History of C#
- Whats New in C# 10
- File-scoped namespaces
- The global using directive
- Nondestructive mutation for anonymous types
- New deconstruction syntax
- Field initializers and parameterless constructors in structs
- Record structs
- Lambda expression enhancements
- Nested property patterns
- CallerArgumentExpression
- Other new features
- Whats New in C# 10
- Whats New in C# 9.0
- Top-level statements
- Init-only setters
- Records
- Pattern-matching improvements
- Target-typed new expressions
- Interop improvements
- Other new features
- Whats New in C# 8.0
- Indices and ranges
- Null-coalescing assignment
- Using declarations
- Read-only members
- Static local methods
- Default interface members
- Switch expressions
- Tuple, positional, and property patterns
- Nullable reference types
- Asynchronous streams
- Whats New in C# 7.x
- C# 7.3
- C# 7.2
- C# 7.1
- Numeric literal improvements
- Out variables and discards
- Type patterns and pattern variables
- Local methods
- More expression-bodied members
- Deconstructors
- Tuples
- throw expressions
- Whats New in C# 6.0
- Whats New in C# 5.0
- Whats New in C# 4.0
- Whats New in C# 3.0
- Whats New in C# 2.0
- 2. C# Language Basics
- A First C# Program
- Compilation
- A First C# Program
- Syntax
- Identifiers and Keywords
- Contextual keywords
- Identifiers and Keywords
- Literals, Punctuators, and Operators
- Comments
- Type Basics
- Predefined Type Examples
- Custom Types
- Members of a type
- Symmetry of predefined types and custom types
- Constructors and instantiation
- Instance versus static members
- The public keyword
- Defining namespaces
- Defining a Main method
- Types and Conversions
- Value Types Versus Reference Types
- Value types
- Reference types
- Null
- Storage overhead
- Predefined Type Taxonomy
- Numeric Types
- Numeric Literals
- Numeric literal type inference
- Numeric suffixes
- Numeric Literals
- Numeric Conversions
- Converting between integral types
- Converting between floating-point types
- Converting between floating-point and integral types
- Decimal conversions
- Arithmetic Operators
- Increment and Decrement Operators
- Specialized Operations on Integral Types
- Division
- Overflow
- Overflow check operators
- Overflow checking for constant expressions
- Bitwise operators
- 8- and 16-Bit Integral Types
- Special Float and Double Values
- double Versus decimal
- Real Number Rounding Errors
- Boolean Type and Operators
- bool Conversions
- Equality and Comparison Operators
- Conditional Operators
- Conditional operator (ternary operator)
- Strings and Characters
- Char Conversions
- String Type
- String concatenation
- String interpolation
- String comparisons
- Constant interpolated strings (C# 10)
- Arrays
- Default Element Initialization
- Value types versus reference types
- Default Element Initialization
- Indices and Ranges
- Indices
- Ranges
- Multidimensional Arrays
- Rectangular arrays
- Jagged arrays
- Simplified Array Initialization Expressions
- Bounds Checking
- Variables and Parameters
- The Stack and the Heap
- Stack
- Heap
- The Stack and the Heap
- Definite Assignment
- Default Values
- Parameters
- Passing arguments by value
- The ref modifier
- The out modifier
- Out variables and discards
- Implications of passing by reference
- The in modifier
- The params modifier
- Optional parameters
- Named arguments
- Ref Locals
- Ref Returns
- varImplicitly Typed Local Variables
- Target-Typed new Expressions
- Expressions and Operators
- Primary Expressions
- Void Expressions
- Assignment Expressions
- Operator Precedence and Associativity
- Precedence
- Left-associative operators
- Right-associative operators
- Operator Table
- Null Operators
- Null-Coalescing Operator
- Null-Coalescing Assignment Operator
- Null-Conditional Operator
- Statements
- Declaration Statements
- Local variables
- Declaration Statements
- Expression Statements
- Selection Statements
- The if statement
- The else clause
- Changing the flow of execution with braces
- The switch statement
- Switching on types
- Switch expressions
- Iteration Statements
- while and do-while loops
- for loops
- foreach loops
- Jump Statements
- The break statement
- The continue statement
- The goto statement
- The return statement
- The throw statement
- Miscellaneous Statements
- Namespaces
- File-Scoped Namespaces (C# 10)
- The using Directive
- The global using Directive (C# 10)
- Implicit global usings
- using static
- Rules Within a Namespace
- Name scoping
- Name hiding
- Repeated namespaces
- Nested using directives
- Aliasing Types and Namespaces
- Advanced Namespace Features
- Extern
- Namespace alias qualifiers
- 3. Creating Types in C#
- Classes
- Fields
- The readonly modifier
- Field initialization
- Declaring multiple fields together
- Fields
- Constants
- Methods
- Expression-bodied methods
- Local methods
- Static local methods
- Local methods and top-level statements
- Overloading methods
- Classes
- Instance Constructors
- Overloading constructors
- Implicit parameterless constructors
- Constructor and field initialization order
- Nonpublic constructors
- Deconstructors
- Object Initializers
- The this Reference
- Properties
- Read-only and calculated properties
- Expression-bodied properties
- Automatic properties
- Property initializers
- get and set accessibility
- Init-only setters
- CLR property implementation
- Indexers
- Implementing an indexer
- CLR indexer implementation
- Using indices and ranges with indexers
- Static Constructors
- Static constructors and field initialization order
- Static Classes
- Finalizers
- Partial Types and Methods
- Partial methods
- Extended partial methods
- The nameof operator
- Inheritance
- Polymorphism
- Casting and Reference Conversions
- Upcasting
- Downcasting
- The as operator
- The is operator
- Introducing a pattern variable
- Virtual Function Members
- Covariant return types
- Abstract Classes and Abstract Members
- Hiding Inherited Members
- new versus override
- Sealing Functions and Classes
- The base Keyword
- Constructors and Inheritance
- Implicit calling of the parameterless base-class constructor
- Constructor and field initialization order
- Overloading and Resolution
- The object Type
- Boxing and Unboxing
- Copying semantics of boxing and unboxing
- Boxing and Unboxing
- Static and Runtime Type Checking
- The GetType Method and typeof Operator
- The ToString Method
- Object Member Listing
- Structs
- Struct Construction Semantics
- The default constructor
- Struct Construction Semantics
- Read-Only Structs and Functions
- Ref Structs
- Access Modifiers
- Examples
- Friend Assemblies
- Accessibility Capping
- Restrictions on Access Modifiers
- Interfaces
- Extending an Interface
- Explicit Interface Implementation
- Implementing Interface Members Virtually
- Reimplementing an Interface in a Subclass
- Alternatives to interface reimplementation
- Interfaces and Boxing
- Default Interface Members
- Enums
- Enum Conversions
- Flags Enums
- Enum Operators
- Type-Safety Issues
- Nested Types
- Generics
- Generic Types
- Why Generics Exist
- Generic Methods
- Declaring Type Parameters
- typeof and Unbound Generic Types
- The default Generic Value
- Generic Constraints
- Subclassing Generic Types
- Self-Referencing Generic Declarations
- Static Data
- Type Parameters and Conversions
- Covariance
- Variance is not automatic
- Arrays
- Declaring a covariant type parameter
- Contravariance
- C# Generics Versus C++ Templates
- 4. Advanced C#
- Delegates
- Writing Plug-In Methods with Delegates
- Instance and Static Method Targets
- Multicast Delegates
- Multicast delegate example
- Generic Delegate Types
- The Func and Action Delegates
- Delegates Versus Interfaces
- Delegate Compatibility
- Type compatibility
- Parameter compatibility
- Return type compatibility
- Generic delegate type parameter variance
- Delegates
- Events
- Standard Event Pattern
- Event Accessors
- Event Modifiers
- Lambda Expressions
- Explicitly Specifying Lambda Parameter and Return Types
- Capturing Outer Variables
- Static lambdas
- Capturing iteration variables
- Lambda Expressions Versus Local Methods
- Anonymous Methods
- try Statements and Exceptions
- The catch Clause
- Exception filters
- The catch Clause
- The finally Block
- The using statement
- using declarations
- Throwing Exceptions
- throw expressions
- Rethrowing an exception
- Key Properties of System.Exception
- Common Exception Types
- The TryXXX Method Pattern
- Alternatives to Exceptions
- Enumeration and Iterators
- Enumeration
- Collection Initializers
- Iterators
- Iterator Semantics
- yield break
- Iterators and try/catch/finally blocks
- Composing Sequences
- Nullable Value Types
- Nullable<T> Struct
- Implicit and Explicit Nullable Conversions
- Boxing and Unboxing Nullable Values
- Operator Lifting
- Equality operators (== and !=)
- Relational operators (<, <=, >=, >)
- All other operators (+, , *, /, %, &, |, ^, <<, >>, +, ++, --, !, ~)
- Mixing nullable and non-nullable operators
- bool? with & and | Operators
- Nullable Value Types and Null Operators
- Scenarios for Nullable Value Types
- Alternatives to Nullable Value Types
- Nullable Reference Types
- The Null-Forgiving Operator
- Separating the Annotation and Warning Contexts
- Treating Nullable Warnings as Errors
- Extension Methods
- Extension Method Chaining
- Ambiguity and Resolution
- Namespaces
- Extension methods versus instance methods
- Extension methods versus extension methods
- Demoting an extension method
- Anonymous Types
- Tuples
- Naming Tuple Elements
- Type erasure
- Naming Tuple Elements
- ValueTuple.Create
- Deconstructing Tuples
- Equality Comparison
- The System.Tuple classes
- Records
- Background
- Defining a Record
- Parameter lists
- Nondestructive Mutation
- Property Validation
- Calculated Fields and Lazy Evaluation
- Primary Constructors
- Records and Equality Comparison
- Patterns
- var Pattern
- Constant Pattern
- Relational Patterns
- Pattern Combinators
- Tuple and Positional Patterns
- Property Patterns
- Attributes
- Attribute Classes
- Named and Positional Attribute Parameters
- Applying Attributes to Assemblies and Backing Fields
- Applying Attributes to Lambda Expressions (C# 10)
- Specifying Multiple Attributes
- Caller Info Attributes
- CallerArgumentExpression (C# 10)
- Dynamic Binding
- Static Binding Versus Dynamic Binding
- Custom Binding
- Language Binding
- RuntimeBinderException
- Runtime Representation of Dynamic
- Dynamic Conversions
- var Versus dynamic
- Dynamic Expressions
- Dynamic Calls Without Dynamic Receivers
- Static Types in Dynamic Expressions
- Uncallable Functions
- Operator Overloading
- Operator Functions
- Overloading Equality and Comparison Operators
- Custom Implicit and Explicit Conversions
- Overloading true and false
- Unsafe Code and Pointers
- Pointer Basics
- Unsafe Code
- The fixed Statement
- The Pointer-to-Member Operator
- The stackalloc Keyword
- Fixed-Size Buffers
- void*
- Native-Sized Integers
- Function Pointers
- [SkipLocalsInit]
- Preprocessor Directives
- Conditional Attributes
- Pragma Warning
- XML Documentation
- Standard XML Documentation Tags
- User-Defined Tags
- Type or Member Cross-References
- 5. .NET Overview
- .NET Standard
- .NET Standard 2.0
- .NET Standard 2.1
- Older .NET Standards
- .NET Framework and .NET 6 Compatibility
- .NET Standard
- Runtime and C# Language Versions
- Reference Assemblies
- The CLR and BCL
- System Types
- Text Processing
- Collections
- Querying
- XML and JSON
- Diagnostics
- Concurrency and Asynchrony
- Streams and Input/Output
- Networking
- Assemblies, Reflection, and Attributes
- Dynamic Programming
- Cryptography
- Advanced Threading
- Parallel Programming
- Span<T> and Memory<T>
- Native and COM Interoperability
- Regular Expressions
- Serialization
- The Roslyn Compiler
- Application Layers
- ASP.NET Core
- Windows Desktop
- WPF
- Windows Forms
- UWP and WinUI 3
- MAUI
- 6. .NET Fundamentals
- String and Text Handling
- Char
- String
- Constructing strings
- Null and empty strings
- Accessing characters within a string
- Searching within strings
- Manipulating strings
- Splitting and joining strings
- String.Format and composite format strings
- Comparing Strings
- Ordinal versus culture comparison
- String equality comparison
- String order comparison
- String and Text Handling
- StringBuilder
- Text Encodings and Unicode
- Obtaining an Encoding object
- Encoding for file and stream I/O
- Encoding to byte arrays
- UTF-16 and surrogate pairs
- Dates and Times
- TimeSpan
- DateTime and DateTimeOffset
- Choosing between DateTime and DateTimeOffset
- Constructing a DateTime
- Constructing a DateTimeOffset
- The current DateTime/DateTimeOffset
- Working with dates and times
- Formatting and parsing DateTimes
- Null DateTime and DateTimeOffset values
- DateOnly and TimeOnly
- DateTime and Time Zones
- DateTimeOffset and Time Zones
- TimeZoneInfo
- TimeZone
- TimeZoneInfo
- Daylight Saving Time and DateTime
- Formatting and Parsing
- ToString and Parse
- Format Providers
- Format providers and CultureInfo
- Using NumberFormatInfo or DateTimeFormatInfo
- Composite formatting
- Parsing with format providers
- IFormatProvider and ICustomFormatter
- Standard Format Strings and Parsing Flags
- Numeric Format Strings
- NumberStyles
- Date/Time Format Strings
- Parsing and misparsing DateTimes
- DateTimeStyles
- Enum Format Strings
- Other Conversion Mechanisms
- Convert
- Rounding real to integral conversions
- Parsing numbers in base 2, 8, and 16
- Dynamic conversions
- Base-64 conversions
- Convert
- XmlConvert
- Type Converters
- BitConverter
- Globalization
- Globalization Checklist
- Testing
- Working with Numbers
- Conversions
- Math
- BigInteger
- Half
- Complex
- Random
- BitOperations
- Enums
- Enum Conversions
- Enum to integral conversions
- Integral to enum conversions
- String conversions
- Enum Conversions
- Enumerating Enum Values
- How Enums Work
- The Guid Struct
- Equality Comparison
- Value Versus Referential Equality
- Standard Equality Protocols
- == and !=
- The virtual Object.Equals method
- The static object.Equals method
- The static object.ReferenceEquals method
- The IEquatable<T> interface
- When Equals and == are not equal
- Equality and Custom Types
- Changing the meaning of equality
- Speeding up equality comparisons with structs
- How to override equality semantics
- Overriding GetHashCode
- Overriding Equals
- Overloading == and !=
- Implementing IEquatable<T>
- An example: the Area struct
- Pluggable equality comparers
- Order Comparison
- IComparable
- IComparable versus Equals
- IComparable
- < and >
- Implementing the IComparable Interfaces
- Utility Classes
- Console
- Environment
- Process
- Redirecting output and error streams
- UseShellExecute
- AppContext
- 7. Collections
- Enumeration
- IEnumerable and IEnumerator
- IEnumerable<T> and IEnumerator<T>
- IEnumerable<T> and IDisposable
- Implementing the Enumeration Interfaces
- Enumeration
- The ICollection and IList Interfaces
- ICollection<T> and ICollection
- IList<T> and IList
- IReadOnlyCollection<T> and IReadOnlyList<T>
- The Array Class
- Construction and Indexing
- Enumeration
- Length and Rank
- Searching
- Sorting
- Reversing Elements
- Copying
- Converting and Resizing
- Lists, Queues, Stacks, and Sets
- List<T> and ArrayList
- LinkedList<T>
- Queue<T> and Queue
- Stack<T> and Stack
- BitArray
- HashSet<T> and SortedSet<T>
- Dictionaries
- IDictionary<TKey,TValue>
- IDictionary
- Dictionary<TKey,TValue> and Hashtable
- OrderedDictionary
- ListDictionary and HybridDictionary
- Sorted Dictionaries
- Customizable Collections and Proxies
- Collection<T> and CollectionBase
- CollectionBase
- Collection<T> and CollectionBase
- KeyedCollection<TKey,TItem> and DictionaryBase
- DictionaryBase
- ReadOnlyCollection<T>
- Immutable Collections
- Creating Immutable Collections
- Manipulating Immutable Collections
- Builders
- Immutable Collections and Performance
- Plugging in Equality and Order
- IEqualityComparer and EqualityComparer
- EqualityComparer<T>.Default
- ReferenceEqualityComparer.Instance (.NET 5+)
- IEqualityComparer and EqualityComparer
- IComparer and Comparer
- StringComparer
- IStructuralEquatable and IStructuralComparable
- 8. LINQ Queries
- Getting Started
- Fluent Syntax
- Chaining Query Operators
- Why extension methods are important
- Chaining Query Operators
- Composing Lambda Expressions
- Lambda expressions and Func signatures
- Lambda expressions and element typing
- Natural Ordering
- Other Operators
- Query Expressions
- Range Variables
- Query Syntax Versus SQL Syntax
- Query Syntax Versus Fluent Syntax
- Mixed-Syntax Queries
- Deferred Execution
- Reevaluation
- Captured Variables
- How Deferred Execution Works
- Chaining Decorators
- How Queries Are Executed
- Subqueries
- Subqueries and Deferred Execution
- Composition Strategies
- Progressive Query Building
- The into Keyword
- Scoping rules
- Wrapping Queries
- Projection Strategies
- Object Initializers
- Anonymous Types
- The let Keyword
- Interpreted Queries
- How Interpreted Queries Work
- Execution
- How Interpreted Queries Work
- Combining Interpreted and Local Queries
- AsEnumerable
- EF Core
- EF Core Entity Classes
- DbContext
- Configuring the connection
- Configuring the Model
- Creating the database
- Using DbContext
- Object Tracking
- Change Tracking
- Navigation Properties
- Adding and removing entities from navigation collections
- Loading navigation properties
- Lazy loading
- Deferred Execution
- Building Query Expressions
- Delegates Versus Expression Trees
- Compiling expression trees
- AsQueryable
- Delegates Versus Expression Trees
- Expression Trees
- The Expression DOM
- 9. LINQ Operators
- Overview
- SequenceSequence
- Filtering
- Projecting
- Joining
- Ordering
- Grouping
- Set operators
- Conversion methods: Import
- Conversion methods: Export
- SequenceSequence
- SequenceElement or Value
- Element operators
- Aggregation methods
- Quantifiers
- Overview
- VoidSequence
- Generation methods
- Filtering
- Where
- Query syntax
- Enumerable.Where implementation
- Overview
- Indexed filtering
- SQL LIKE comparisons in EF Core
- < and > string comparisons in EF Core
- WHERE x IN (, , ) in EF Core
- Where
- Take, TakeLast, Skip, and SkipLast
- TakeWhile and SkipWhile
- Distinct and DistinctBy
- Projecting
- Select
- Query syntax
- Enumerable implementation
- Overview
- Indexed projection
- Select subqueries and object hierarchies
- Subqueries and joins in EF Core
- Projecting into concrete types
- Select
- SelectMany
- Query syntax
- Enumerable implementation
- Overview
- Multiple range variables
- Thinking in query syntax
- Joining with SelectMany
- SelectMany in EF Core
- Outer joins with SelectMany
- Joining
- Join and GroupJoin
- Join arguments
- GroupJoin arguments
- Query syntax
- Overview
- Join
- Joining on multiple keys
- Joining in fluent syntax
- GroupJoin
- Flat outer joins
- Joining with lookups
- Enumerable implementations
- Join and GroupJoin
- The Zip Operator
- Ordering
- OrderBy, OrderByDescending, ThenBy, and ThenByDescending
- OrderBy and OrderByDescending arguments
- ThenBy and ThenByDescending arguments
- Query syntax
- Overview
- Comparers and collations
- IOrderedEnumerable and IOrderedQueryable
- OrderBy, OrderByDescending, ThenBy, and ThenByDescending
- Grouping
- GroupBy
- Query syntax
- Overview
- GroupBy in EF Core
- Grouping by multiple keys
- Custom equality comparers
- GroupBy
- Chunk
- Set Operators
- Concat, Union, and UnionBy
- Intersect, Intersect By, Except, and ExceptBy
- Conversion Methods
- OfType and Cast
- ToArray, ToList, ToDictionary, ToHashSet, and ToLookup
- AsEnumerable and AsQueryable
- Element Operators
- First, Last, and Single
- ElementAt
- MinBy and MaxBy
- DefaultIfEmpty
- Aggregation Methods
- Count and LongCount
- Min and Max
- Sum and Average
- Aggregate
- Unseeded aggregations
- Traps with unseeded aggregations
- Quantifiers
- Contains and Any
- All and SequenceEqual
- Generation Methods
- Empty
- Range and Repeat
- 10. LINQ to XML
- Architectural Overview
- What Is a DOM?
- The LINQ to XML DOM
- Architectural Overview
- X-DOM Overview
- Loading and Parsing
- Saving and Serializing
- Instantiating an X-DOM
- Functional Construction
- Specifying Content
- Automatic Deep Cloning
- Navigating and Querying
- Child Node Navigation
- FirstNode, LastNode, and Nodes
- Retrieving elements
- Retrieving a single element
- Retrieving descendants
- Child Node Navigation
- Parent Navigation
- Peer Node Navigation
- Attribute Navigation
- Updating an X-DOM
- Simple Value Updates
- Updating Child Nodes and Attributes
- Updating Through the Parent
- Removing a sequence of nodes or attributes
- Working with Values
- Setting Values
- Getting Values
- Values and Mixed Content Nodes
- Automatic XText Concatenation
- Documents and Declarations
- XDocument
- XML Declarations
- Writing a declaration to a string
- Names and Namespaces
- Namespaces in XML
- Prefixes
- Attributes
- Namespaces in XML
- Specifying Namespaces in the X-DOM
- The X-DOM and Default Namespaces
- Prefixes
- Annotations
- Projecting into an X-DOM
- Eliminating Empty Elements
- Streaming a Projection
- 11. Other XML and JSON Technologies
- XmlReader
- Reading Nodes
- Reading Elements
- Optional elements
- Random element order
- Empty elements
- Other ReadXXX methods
- Reading Attributes
- Attribute nodes
- XmlReader
- Namespaces and Prefixes
- XmlWriter
- Writing Attributes
- Writing Other Node Types
- Namespaces and Prefixes
- Patterns for Using XmlReader/XmlWriter
- Working with Hierarchical Data
- Mixing XmlReader/XmlWriter with an X-DOM
- Using XmlReader with XElement
- Using XmlWriter with XElement
- Working with JSON
- Utf8JsonReader
- JsonReaderOptions
- Utf8JsonReader
- Utf8JsonWriter
- JsonDocument
- Reading simple values
- Reading JSON arrays
- Reading JSON objects
- JsonDocument and LINQ
- Making updates with a JSON writer
- JsonNode
- Reading simple values
- Reading JSON arrays
- Reading JSON objects
- Fluent traversal and LINQ
- Making updates with JsonNode
- Constructing a JsonNode DOM programmatically
- 12. Disposal and Garbage Collection
- IDisposable, Dispose, and Close
- Standard Disposal Semantics
- Close and Stop
- Standard Disposal Semantics
- When to Dispose
- Clearing Fields in Disposal
- Anonymous Disposal
- IDisposable, Dispose, and Close
- Automatic Garbage Collection
- Roots
- Finalizers
- Calling Dispose from a Finalizer
- Resurrection
- GC.ReRegisterForFinalize
- How the GC Works
- Optimization Techniques
- Generational collection
- The Large Object Heap
- Workstation versus server collection
- Background collection
- GC notifications
- Optimization Techniques
- Forcing Garbage Collection
- Tuning Garbage Collection at Runtime
- Memory Pressure
- Array Pooling
- Managed Memory Leaks
- Timers
- Diagnosing Memory Leaks
- Weak References
- Weak References and Caching
- Weak References and Events
- 13. Diagnostics
- Conditional Compilation
- Conditional Compilation Versus Static Variable Flags
- The Conditional Attribute
- Alternatives to the Conditional attribute
- Conditional Compilation
- Debug and Trace Classes
- Fail and Assert
- TraceListener
- Flushing and Closing Listeners
- Debugger Integration
- Attaching and Breaking
- Debugger Attributes
- Processes and Process Threads
- Examining Running Processes
- Examining Threads in a Process
- StackTrace and StackFrame
- Windows Event Logs
- Writing to the Event Log
- Reading the Event Log
- Monitoring the Event Log
- Performance Counters
- Enumerating the Available Counters
- Reading Performance Counter Data
- Creating Counters and Writing Performance Data
- The Stopwatch Class
- Cross-Platform Diagnostic Tools
- dotnet-counters
- dotnet-trace
- Custom trace events
- dotnet-dump
- 14. Concurrency and Asynchrony
- Introduction
- Threading
- Creating a Thread
- Join and Sleep
- Blocking
- I/O-bound versus compute-bound
- Blocking versus spinning
- Local Versus Shared State
- Locking and Thread Safety
- Passing Data to a Thread
- Lambda expressions and captured variables
- Exception Handling
- Centralized exception handling
- Foreground Versus Background Threads
- Thread Priority
- Signaling
- Threading in Rich Client Applications
- Synchronization Contexts
- The Thread Pool
- Entering the thread pool
- Hygiene in the thread pool
- Tasks
- Starting a Task
- Wait
- Long-running tasks
- Starting a Task
- Returning values
- Exceptions
- Exceptions and autonomous tasks
- Continuations
- TaskCompletionSource
- Task.Delay
- Principles of Asynchrony
- Synchronous Versus Asynchronous Operations
- What Is Asynchronous Programming?
- Asynchronous Programming and Continuations
- Why Language Support Is Important
- Asynchronous Functions in C#
- Awaiting
- Capturing local state
- Awaiting in a UI
- Comparison to coarse-grained concurrency
- Awaiting
- Writing Asynchronous Functions
- Returning Task<TResult>
- Asynchronous call graph execution
- Parallelism
- Asynchronous Lambda Expressions
- Asynchronous Streams
- Querying IAsyncEnumerable<T>
- IAsyncEnumerable<T> in ASP.Net Core
- Asynchronous Methods in WinRT
- Asynchrony and Synchronization Contexts
- Exception posting
- OperationStarted and OperationCompleted
- Optimizations
- Completing synchronously
- ValueTask<T>
- Precautions when using ValueTask<T>
- Avoiding excessive bouncing
- Asynchronous Patterns
- Cancellation
- Progress Reporting
- IProgress<T> and Progress<T>
- The Task-Based Asynchronous Pattern
- Task Combinators
- WhenAny
- WhenAll
- Custom combinators
- Asynchronous Locking
- Obsolete Patterns
- Asynchronous Programming Model
- Event-Based Asynchronous Pattern
- BackgroundWorker
- 15. Streams and I/O
- Stream Architecture
- Using Streams
- Reading and Writing
- Seeking
- Closing and Flushing
- Timeouts
- Thread Safety
- Backing Store Streams
- FileStream
- Constructing a FileStream
- Specifying a filename
- Specifying a FileMode
- Advanced FileStream features
- MemoryStream
- PipeStream
- Named pipes
- Anonymous pipes
- BufferedStream
- Stream Adapters
- Text Adapters
- StreamReader and StreamWriter
- Character encodings
- StringReader and StringWriter
- Text Adapters
- Binary Adapters
- Closing and Disposing Stream Adapters
- Compression Streams
- Compressing in Memory
- Unix gzip File Compression
- Working with ZIP Files
- File and Directory Operations
- The File Class
- Compression and encryption attributes
- File security
- The File Class
- The Directory Class
- FileInfo and DirectoryInfo
- Path
- Special Folders
- Querying Volume Information
- Catching Filesystem Events
- OS Security
- Running in a Standard User Account
- Administrative Elevation and Virtualization
- Memory-Mapped Files
- Memory-Mapped Files and Random File I/O
- Memory-Mapped Files and Shared Memory (Windows)
- Cross-Platform Interprocess Shared Memory
- Working with View Accessors
- 16. Networking
- Network Architecture
- Addresses and Ports
- URIs
- HttpClient
- GetAsync and Response Messages
- SendAsync and Request Messages
- Uploading Data and HttpContent
- HttpMessageHandler
- Unit testing and mocking
- Chaining handlers with DelegatingHandler
- Proxies
- Authentication
- CredentialCache
- Authenticating via headers
- Headers
- Query Strings
- Uploading Form Data
- Cookies
- Writing an HTTP Server
- Using DNS
- Sending Mail with SmtpClient
- Using TCP
- Concurrency with TCP
- Receiving POP3 Mail with TCP
- 17. Assemblies
- Whats in an Assembly
- The Assembly Manifest
- Specifying assembly attributes
- The Assembly Manifest
- The Application Manifest (Windows)
- Deploying an application manifest
- Whats in an Assembly
- Modules
- The Assembly Class
- Strong Names and Assembly Signing
- How to Strongly Name an Assembly
- Assembly Names
- Fully Qualified Names
- The AssemblyName Class
- Assembly Informational and File Versions
- Authenticode Signing
- How to Sign with Authenticode
- Obtaining and installing a certificate
- Signing with signtool.exe
- Time stamping
- Verifying that a program has been signed
- How to Sign with Authenticode
- Resources and Satellite Assemblies
- Directly Embedding Resources
- .resources Files
- .resx Files
- Reading .resources files
- Creating a pack URI resource in Visual Studio
- Satellite Assemblies
- Building satellite assemblies
- Testing satellite assemblies
- Visual Studio designer support
- Cultures and Subcultures
- Loading, Resolving, and Isolating Assemblies
- Assembly Load Contexts
- Loading assemblies
- LoadFromAssemblyName
- Resolving assemblies
- Assembly Load Contexts
- The Default ALC
- Default probing
- The Current ALC
- Assembly.Load and Contextual ALCs
- EnterContextualReflection
- Loading and Resolving Unmanaged Libraries
- AssemblyDependencyResolver
- Unloading ALCs
- The Legacy Loading Methods
- LoadFrom
- LoadFile and Load(byte[])
- Writing a Plug-In System
- Plugin.Common
- Capitalizer (plug-in)
- Plugin.Host
- Adding dependencies
- 18. Reflection and Metadata
- Reflecting and Activating Types
- Obtaining a Type
- TypeInfo
- Obtaining array types
- Obtaining nested types
- Obtaining a Type
- Type Names
- Nested type names
- Generic type names
- Array and pointer type names
- ref and out parameter type names
- Reflecting and Activating Types
- Base Types and Interfaces
- Instantiating Types
- Generic Types
- Reflecting and Invoking Members
- Member Types
- C# Members Versus CLR Members
- Init-only properties
- NullabilityContextInfo
- Generic Type Members
- Dynamically Invoking a Member
- Method Parameters
- Dealing with ref and out parameters
- Retrieving and invoking generic methods
- Using Delegates for Performance
- Accessing Nonpublic Members
- The BindingFlags enum
- Generic Methods
- Anonymously Calling Members of a Generic Interface
- Reflecting Assemblies
- Modules
- Working with Attributes
- Attribute Basics
- The AttributeUsage Attribute
- Defining Your Own Attribute
- Retrieving Attributes at Runtime
- Dynamic Code Generation
- Generating IL with DynamicMethod
- The Evaluation Stack
- Passing Arguments to a Dynamic Method
- Generating Local Variables
- Branching
- Instantiating Objects and Calling Instance Methods
- Exception Handling
- Emitting Assemblies and Types
- The Reflection.Emit Object Model
- Emitting Type Members
- Emitting Methods
- Generating instance methods
- Overriding methods
- HideBySig
- Emitting Methods
- Emitting Fields and Properties
- Emitting Constructors
- Calling base constructors
- Attaching Attributes
- Emitting Generic Methods and Types
- Defining Generic Methods
- Defining Generic Types
- Awkward Emission Targets
- Uncreated Closed Generics
- Circular Dependencies
- Parsing IL
- Writing a Disassembler
- 19. Dynamic Programming
- The Dynamic Language Runtime
- Numeric Type Unification
- Dynamic Member Overload Resolution
- Simplifying the Visitor Pattern
- Variations
- Simplifying the Visitor Pattern
- Anonymously Calling Members of a Generic Type
- Implementing Dynamic Objects
- DynamicObject
- ExpandoObject
- Interoperating with Dynamic Languages
- Passing State Between C# and a Script
- 20. Cryptography
- Overview
- Windows Data Protection
- Hashing
- Hash Algorithms in .NET
- Hashing Passwords
- Symmetric Encryption
- Encrypting in Memory
- Chaining Encryption Streams
- Disposing Encryption Objects
- Key Management
- Public-Key Encryption and Signing
- The RSA Class
- Digital Signing
- 21. Advanced Threading
- Synchronization Overview
- Exclusive Locking
- The lock Statement
- Monitor.Enter and Monitor.Exit
- The lockTaken overloads
- TryEnter
- Choosing the Synchronization Object
- When to Lock
- Locking and Atomicity
- Nested Locking
- Deadlocks
- Performance
- Mutex
- Locking and Thread Safety
- Thread Safety and .NET Types
- Locking around thread-safe objects
- Static members
- Read-only thread safety
- Thread Safety and .NET Types
- Thread Safety in Application Servers
- Immutable Objects
- Nonexclusive Locking
- Semaphore
- Asynchronous semaphores and locks
- Writing an EnterAsync extension method
- Parallel.ForEachAsync
- Semaphore
- Reader/Writer Locks
- Upgradeable locks
- Lock recursion
- Signaling with Event Wait Handles
- AutoResetEvent
- Two-way signaling
- AutoResetEvent
- ManualResetEvent
- CountdownEvent
- Creating a Cross-Process EventWaitHandle
- Wait Handles and Continuations
- WaitAny, WaitAll, and SignalAndWait
- Alternatives to WaitAll and SignalAndWait
- The Barrier Class
- Lazy Initialization
- Lazy<T>
- LazyInitializer
- Thread-Local Storage
- [ThreadStatic]
- ThreadLocal<T>
- ThreadLocal<T> and instance fields
- GetData and SetData
- AsyncLocal<T>
- Timers
- PeriodicTimer
- Multithreaded Timers
- Single-Threaded Timers
- 22. Parallel Programming
- Why PFX?
- PFX Concepts
- PFX Components
- When to Use PFX
- Why PFX?
- PLINQ
- Parallel Execution Ballistics
- PLINQ and Ordering
- PLINQ Limitations
- Example: Parallel Spellchecker
- Using ThreadLocal<T>
- Functional Purity
- Setting the Degree of Parallelism
- Changing the degree of parallelism
- Cancellation
- Optimizing PLINQ
- Output-side optimization
- Input-side optimization
- Optimizing custom aggregations
- The Parallel Class
- Parallel.Invoke
- Parallel.For and Parallel.ForEach
- Outer versus inner loops
- Indexed Parallel.ForEach
- ParallelLoopState: Breaking early out of loops
- Optimization with local values
- Task Parallelism
- Creating and Starting Tasks
- Specifying a state object
- TaskCreationOptions
- Child tasks
- Creating and Starting Tasks
- Waiting on Multiple Tasks
- Canceling Tasks
- Continuations
- Continuations and Task<TResult>
- Continuations and exceptions
- Continuations and child tasks
- Conditional continuations
- Continuations with multiple antecedents
- Multiple continuations on a single antecedent
- Task Schedulers
- TaskFactory
- Creating your own task factories
- Working with AggregateException
- Flatten and Handle
- Flatten
- Handle
- Flatten and Handle
- Concurrent Collections
- IProducerConsumerCollection<T>
- ConcurrentBag<T>
- BlockingCollection<T>
- Writing a Producer/Consumer Queue
- Using Tasks
- Writing a Producer/Consumer Queue
- 23. Span<T> and Memory<T>
- Spans and Slicing
- CopyTo and TryCopyTo
- Working with Text
- Spans and Slicing
- Memory<T>
- Forward-Only Enumerators
- Working with Stack-Allocated and Unmanaged Memory
- 24. Native and COM Interoperability
- Calling into Native DLLs
- Type and Parameter Marshaling
- Marshaling Common Types
- Marshaling Classes and Structs
- In and Out Marshaling
- Calling Conventions
- Callbacks from Unmanaged Code
- Callbacks with Function Pointers
- UnmanagedCallersOnly
- Nondefault calling conventions
- Callbacks with Function Pointers
- Callbacks with Delegates
- Simulating a C Union
- Shared Memory
- Mapping a Struct to Unmanaged Memory
- fixed and fixed {...}
- COM Interoperability
- The Purpose of COM
- The Basics of the COM Type System
- IUnknown and IDispatch
- Calling a COM Component from C#
- Optional Parameters and Named Arguments
- Implicit ref Parameters
- Indexers
- Dynamic Binding
- Embedding Interop Types
- Type Equivalence
- Exposing C# Objects to COM
- Enabling Registry-Free COM
- 25. Regular Expressions
- Regular Expression Basics
- Compiled Regular Expressions
- RegexOptions
- Character Escapes
- Character Sets
- Regular Expression Basics
- Quantifiers
- Greedy Versus Lazy Quantifiers
- Zero-Width Assertions
- Lookahead and Lookbehind
- Anchors
- Word Boundaries
- Groups
- Named Groups
- Replacing and Splitting Text
- MatchEvaluator Delegate
- Splitting Text
- Cookbook Regular Expressions
- Recipes
- Matching US Social Security number/phone number
- Extracting name = value pairs (one per line)
- Strong password validation
- Lines of at least 80 characters
- Parsing dates/times (N/N/N H:M:S AM/PM)
- Matching Roman numerals
- Removing repeated words
- Word count
- Matching a GUID
- Parsing an XML/HTML tag
- Splitting a camel-cased word
- Obtaining a legal filename
- Escaping Unicode characters for HTML
- Unescaping characters in an HTTP query string
- Parsing Google search terms from a web stats log
- Recipes
- Regular Expressions Language Reference
- Index
O'Reilly Media - inne książki
-
If you're a PHP developer looking for proven solutions to common problems, this cookbook provides code recipes to help you resolve numerous scenarios. By leveraging modern versions of PHP through version 8.1, these self-contained recipes provide fully realized solutions that can help you solve si...(0,00 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
Over the past 10 years, data analytics and data visualization have become essential components of an enterprise information strategy. And yet, the adoption of data analytics has remained remarkably static, reaching no more than 30% of potential users. This book explores the most important techniq...(0,00 zł najniższa cena z 30 dni)
194.65 zł
229.00 zł(-15%) -
Data lakes and warehouses have become increasingly fragile, costly, and difficult to maintain as data gets bigger and moves faster. Data meshes can help your organization decentralize data, giving ownership back to the engineers who produced it. This book provides a concise yet comprehensive over...(0,00 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
If you're planning, building, or implementing a cloud strategy that supports digitalization for your financial services business, this invaluable guide clearly sets out the crucial factors and questions to consider first. With it, you'll learn how to avoid the costly and time-consuming pitfalls a...
Digitalization of Financial Services in the Age of Cloud Digitalization of Financial Services in the Age of Cloud
(0,00 zł najniższa cena z 30 dni)152.15 zł
179.00 zł(-15%) -
Java developers usually tackle the complexity of software development through object-oriented programming (OOP). But not every problem is a good match for OOP. The functional programming (FP) paradigm offers you another approach to solving problems, and Java provides easy-to-grasp FP tools such a...(0,00 zł najniższa cena z 30 dni)
245.65 zł
289.00 zł(-15%) -
As legacy and other critical systems continue to migrate online, the need for continuous operation is imperative. Code has to handle data issues as well as hard external problems today, including outages of networks, storage systems, power, and ancillary systems. This practical guide provides sys...(0,00 zł najniższa cena z 30 dni)
262.65 zł
309.00 zł(-15%) -
Do you want to write beautiful, structured, and maintainable JavaScript by applying modern design patterns to the language? Do you want clean, efficient, manageable code? Want to stay up-to-date with the latest best practices? If so, the updated second edition of Learning JavaScript Design Patter...(0,00 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
Between major privacy regulations like the GDPR and CCPA and expensive and notorious data breaches, there has never been so much pressure to ensure data privacy. Unfortunately, integrating privacy into data systems is still complicated. This essential guide will give you a fundamental understandi...(0,00 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
This essential guide covers all aspects of Linux system administration, from user maintenance, backups, filesystem housekeeping, storage management, and network setup to hardware and software troubleshooting and some application management. It's both a practical daily reference manual for sysadmi...(0,00 zł najniższa cena z 30 dni)
262.65 zł
309.00 zł(-15%) -
The past decade has witnessed the broad adoption of artificial intelligence and machine learning (AI/ML) technologies. However, a lack of oversight in their widespread implementation has resulted in some incidents and harmful outcomes that could have been avoided with proper risk management. Befo...(0,00 zł najniższa cena z 30 dni)
262.65 zł
309.00 zł(-15%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
W przypadku usługi "Druk na żądanie" termin dostarczenia przesyłki może obejmować także czas potrzebny na dodruk (do 10 dni roboczych)
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.


Oceny i opinie klientów: C# 10 in a Nutshell Joseph Albahari (0)
Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.