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
-
Promocja Promocja 2za1
Oto praktyczny, przystępnie napisany przewodnik, który stanowi wprowadzenie do pracy z technologią Blazor. Opisuje możliwości modeli Server i WebAssembly, przedstawia także krok po kroku proces powstawania aplikacji internetowej. Dzięki temu płynnie przejdziesz do tworzenia projektów Blazor, nauczysz się składni języka Razor, będziesz też weryfikować zawartość formularzy i budować własne komponenty. W tym wydaniu omówiono również generatory kodu źródłowego i zasady przenoszenia komponentów witryn utworzonych w innych technologiach do platformy Blazor. W trakcie lektury dowiesz się, jak tworzyć uniwersalne aplikacje za pomocą wersji Blazor Hybrid wraz z platformą .NET MAUI.- Druk
- PDF + ePub + Mobi pkt
(41,40 zł najniższa cena z 30 dni)
41.40 zł
69.00 zł (-40%) -
Promocja Promocja 2za1
MonoGame. Podstawowe koncepcje grafiki 3D dotyczy programowania grafiki 3D, co oznacza, że do jej tworzenia wykorzystuje się kod, a nie edytor sceny obsługiwany myszką. Autorzy wyczerpująco omówili kluczowe zagadnienia, jak rozdzielenie definiowanie figur i brył, poruszanie nimi na scenie, oświetlenie i cienie, mieszanie kolorów czy odwzorowanie tekstur. Wyjaśnione są także kwestie wykraczające poza podstawy grafiki 3D i dotykające tworzenia gier, jak komponentyzacja produkcji gier czy kwestie projektowania systemów sterowania. W rezultacie Czytelnik otrzymuje książkę na temat grafiki 3D w MonoGame łączącą teorię z wykorzystaniem praktycznych przykładów.- Druk
- PDF + ePub + Mobi pkt
(41,40 zł najniższa cena z 30 dni)
41.40 zł
69.00 zł (-40%) -
Promocja Promocja 2za1
To kolejne, mocno przebudowane wydanie popularnego przewodnika, dzięki któremu zaczniesz skutecznie programować w języku C#. Nabierzesz wprawy w programowaniu zorientowanym obiektowo, pisaniu, testowaniu i debugowaniu funkcji, implementowaniu interfejsów i zarządzaniu danymi. Zobaczysz, w jaki sposób API środowiska .NET realizuje takie zadania jak monitorowanie wydajności i jej poprawianie, jak również praca z systemem plików i serializacją. Wiedza zawarta w kolejnych rozdziałach pozwoli Ci tworzyć praktyczne aplikacje i serwisy z wykorzystaniem biblioteki ASP.NET Core, wzorca MVC i technologii Blazor.- Druk
- PDF + ePub + Mobi pkt
(53,90 zł najniższa cena z 30 dni)
53.90 zł
179.00 zł (-70%) -
Promocja Promocja 2za1
Szkolenie, które Ci dziś proponujemy, pozwoli Ci opanować tajniki pracy z silnikiem graficznym i API Windows Presentation Foundation, w skrócie WPF, znanym pod kodową nazwą Avalon. WPF bazuje na platformie programistycznej Microsoftu .NET 3 i wchodzi w skład WinFX. Możliwości ma naprawdę spore: integruje interfejs użytkownika, grafikę 2D i 3D, multimedia, dokumenty, a także generowanie i rozpoznawanie mowy (co jest przydatne w wypadku aplikacji sterowanych głosem). API WPF bazuje na języku XML, konkretnie na jego implementacji o nazwie XAML.- Videokurs pkt
(76,65 zł najniższa cena z 30 dni)
98.55 zł
219.00 zł (-55%) -
Promocja Promocja 2za1
Oto siódme, uzupełnione i zaktualizowane wydanie cenionego podręcznika (dodano do niego kilka nowych rozdziałów). Dzięki lekturze poznasz od podstaw koncepcje programowania w języku C# i płynnie przejdziesz do tworzenia gier w Unity. Nauczysz się pisać skrypty implementujące prostą mechanikę gier, programować proceduralnie i zwiększać złożoność swoich gier poprzez wprowadzanie inteligentnych nieprzyjaciół i pocisków zadających obrażenia. W kolejnych rozdziałach poznasz coraz ciekawsze możliwości Unity, niezbędne w projektowaniu gier, takie jak sterowanie oświetleniem, ruchami gracza, kamerą, programowanie kolizji i wiele innych.- Druk
- PDF + ePub + Mobi pkt
(59,40 zł najniższa cena z 30 dni)
59.40 zł
99.00 zł (-40%) -
Promocja Promocja 2za1
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# 9.0 oraz 10.0 takie jak: rekordy, rozszerzone możliwości dopasowywania wzorców oraz nowe możliwości związane z upraszczaniem kodu w celu poprawy produktywności.- Druk
- PDF + ePub + Mobi pkt
(101,40 zł najniższa cena z 30 dni)
101.40 zł
169.00 zł (-40%) -
Promocja Promocja 2za1
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 skalowalności aplikacji. Przeczytasz też, w jaki sposób ASP.NET Core ułatwia pracę wielu zespołów programistów. Poszczególne zagadnienia zostały zilustrowane dokładnie wyjaśnionymi przykładami kodu, a dodatkowe ćwiczenia pozwolą Ci na utrwalenie zdobytych umiejętności.- Druk
- PDF + ePub + Mobi pkt
(47,90 zł najniższa cena z 30 dni)
47.90 zł
159.00 zł (-70%) -
Dzięki tej książce zrozumiesz praktyczne znaczenie złożoności dziedziny i behawioralnych aspektów języka dziedzinowego. Poznasz podstawowe zasady DDD i nauczysz się używać takich narzędzi jak EventStorming, Event Sourcing i CQRS. Dowiesz się, jak stosuje się DDD do różnych stylów architektonicznych, takich jak REST, systemy reaktywne i mikrousługi. Nauczysz się pracować we frameworku .NET Core 2.2, aby przetłumaczyć modele dziedzinowe na wykonywalny kod C#, oraz Vue.js, aby zbudować frontend aplikacji. Nie zabrakło tutaj również zagadnień refaktoryzacji kodu, numerowania wersji zdarzeń i migracji. W rezultacie poszczególne zespoły w organizacji będą mogły pracować elastyczniej i efektywniej dzięki ulepszonym usługom i oddzielonym interakcjom.
- Druk
- PDF + ePub + Mobi pkt
Niedostępna
-
Ta książka jest przeznaczona dla doświadczonych programistów C#, którzy chcą nauczyć się technik machine learning, deep learning i sztucznej inteligencji. Opisano tu dostępne narzędzia do uczenia maszynowego, dzięki którym można łatwo budować inteligentne aplikacje .NET wykorzystujące takie rozwiązania jak wykrywanie obrazów lub ruchu, wnioskowanie bayesowskie, głębokie uczenie i głęboka wiara. Omówiono zasady implementacji algorytmów uczenia nadzorowanego i nienadzorowanego oraz ich zastosowanie w budowie modeli predykcji. Przedstawiono różne techniki, od prostej regresji liniowej, przez drzewa decyzyjne i SVM, po zaawansowane rozwiązania, takie jak sztuczne sieci neuronowe, autoenkodery lub uczenie ze wzmocnieniem.
- Druk
- PDF + ePub + Mobi pkt
Niedostępna
-
Promocja Promocja 2za1
Explore ASP.NET Core with this unique guide to crafting resilient and adaptable applications with the GoF design patterns. Featuring architectural principles, SOLID, REST, layering, microservices, and feature-oriented design, and more.- PDF + ePub pkt
(29,90 zł najniższa cena z 30 dni)
125.10 zł
139.00 zł (-10%)
O autorze książki
Joseph 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
-
Promocja Promocja 2za1
Ebook available on November 16, 2023When you have questions about C# 12 or .NET 8, 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 b- ePub + Mobi pkt
(220,15 zł najniższa cena z 30 dni)
228.65 zł
269.00 zł (-15%) -
Promocja Promocja 2za1
Looking for quick answers for using C# 12? 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# version, this guide will help you get rapidly up to sp- ePub + Mobi pkt
(80,73 zł najniższa cena z 30 dni)
80.73 zł
94.99 zł (-15%) -
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ż nieocenioną pomocą dla osób, które znają już inne języki programowania, takie jak C++ czy Java, i chcą nabrać wprawy w pracy z C#. Poszczególne zagadnienia przedstawiono w przejrzysty, treściwy i esencjonalny sposób, tak by skoncentrować się na najważniejszych sprawach.
- Druk
- PDF + ePub + Mobi pkt
Niedostępna
-
Promocja Promocja 2za1
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ęki czemu książka może też służyć jako podręcznik do nauki C# 8.0 i C# 7.0. Znalazły się tu precyzyjne opisy pojęć i przypadków użycia z naciskiem na praktyczność zastosowań. Sporo uwagi poświęcono dość trudnym tematom, jak współbieżność, bezpieczeństwo i dostęp do funkcji systemu operacyjnego. Ten zwięzły przewodnik sprawdzi się doskonale jako stała pomoc w codziennej pracy programisty C#.- Druk
- PDF + ePub + Mobi pkt
(53,90 zł najniższa cena z 30 dni)
53.90 zł
179.00 zł (-70%) -
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# version, this guide will help you get rapidly up to sp
- ePub + Mobi pkt
Niedostępna
-
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ą wersją C#. Poszczególne zagadnienia przedstawiono w przejrzysty, treściwy i równocześnie esencjonalny sposób. Wszystkie użyte tu listingi i fragmenty kodu są dostępne w postaci interaktywnych próbek dla platformy LINQPad, która pozwala na błyskawiczne prototypowanie i obserwowanie efektów wszelkich zmian w kodzie. Oto przewodnik, który powinien mieć pod ręką każdy programista C#!
- Druk
- PDF + ePub + Mobi pkt
Niedostępna
-
Promocja Promocja 2za1
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 zagadnienia potraktowano dogłębnie i od strony praktycznej. Sporo uwagi poświęcono dość trudnym tematom, jak współbieżność, bezpieczeństwo i dostęp do funkcji systemu operacyjnego, przy czym nie zaniedbano kwestii czytelności i nie spłycono informacji. Nowe składniki języka C# 8.0 i związanej z nim platformy specjalnie oznaczono, dzięki czemu to wydanie może też służyć jako podręcznik do C# 7.0.- Druk
- PDF + ePub + Mobi pkt
(89,40 zł najniższa cena z 30 dni)
89.40 zł
149.00 zł (-40%) -
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 wdrożeniu najnowszej wersji języka C#. Jest też nieocenioną pomocą dla osób, które znają już inne języki programowania, takie jak C++ czy Java, i postanowiły nabrać wprawy w pracy z C#. Poszczególne zagadnienia przedstawiono w przejrzysty, treściwy i równocześnie esencjonalny sposób, koncentrując się na najważniejszych sprawach. To pozycja, która powinna znajdować się tuż obok klawiatury każdego programisty C#!
- Druk
- PDF + ePub + Mobi pkt
Niedostępna
-
Promocja Promocja 2za1
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 kwestie, jak współbieżność, bezpieczeństwo i domeny aplikacji. Informacje o nowych składnikach języka C# 6.0 i 7.0, a także o związanej z nim platformie zostały oznaczone. Szczególnie istotny z punktu widzenia programisty może okazać się rozdział o nowym kompilatorze Roslyn, zwanym kompilatorem usługowym.- Druk
- PDF + ePub + Mobi pkt
(77,40 zł najniższa cena z 30 dni)
77.40 zł
129.00 zł (-40%) -
Promocja Promocja 2za1
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. Mimo to nawet tak świetne narzędzie, jak C# w wersji 7.0, jest jeszcze wygodniejsze w pracy, jeśli programista ma pod ręką coś, co wspomoże jego codzienną pracę i we właściwym miejscu podsunie potrzebną informację.- Druk
- PDF + ePub + Mobi pkt
(20,94 zł najniższa cena z 30 dni)
20.94 zł
34.90 zł (-40%)
Ebooka "C# 10 in a Nutshell" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Booxs 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 "C# 10 in a Nutshell" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolonych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "C# 10 in a Nutshell" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
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
- Zgłoś erratę
- 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# 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
- Whats New in C# 10
- 2. C# Language Basics
- A First C# Program
- Compilation
- Syntax
- Identifiers and Keywords
- Contextual keywords
- Literals, Punctuators, and Operators
- Comments
- Identifiers and Keywords
- 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 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
- Numeric Literals
- 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
- Indices and Ranges
- Indices
- Ranges
- Multidimensional Arrays
- Rectangular arrays
- Jagged arrays
- Simplified Array Initialization Expressions
- Bounds Checking
- Default Element Initialization
- Variables and Parameters
- The Stack and the Heap
- Stack
- 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
- The Stack and the Heap
- 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
- 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
- Declaration 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
- A First C# Program
- 3. Creating Types in C#
- Classes
- Fields
- The readonly modifier
- Field initialization
- Declaring multiple fields together
- Constants
- Methods
- Expression-bodied methods
- Local methods
- Static local methods
- Local methods and top-level statements
- Overloading methods
- 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
- Fields
- 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
- Static and Runtime Type Checking
- The GetType Method and typeof Operator
- The ToString Method
- Object Member Listing
- Boxing and Unboxing
- Structs
- Struct Construction Semantics
- The default constructor
- Read-Only Structs and Functions
- Ref Structs
- Struct Construction Semantics
- 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
- Classes
- 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
- 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 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
- The catch Clause
- 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
- ValueTuple.Create
- Deconstructing Tuples
- Equality Comparison
- The System.Tuple classes
- Naming Tuple Elements
- 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
- Delegates
- 5. .NET Overview
- .NET Standard
- .NET Standard 2.0
- .NET Standard 2.1
- Older .NET Standards
- .NET Framework and .NET 6 Compatibility
- 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
- .NET Standard
- 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
- 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
- XmlConvert
- Type Converters
- BitConverter
- Convert
- 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
- Enumerating Enum Values
- How Enums Work
- Enum Conversions
- 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
- < and >
- Implementing the IComparable Interfaces
- IComparable
- Utility Classes
- Console
- Environment
- Process
- Redirecting output and error streams
- UseShellExecute
- AppContext
- String and Text Handling
- 7. Collections
- Enumeration
- IEnumerable and IEnumerator
- IEnumerable<T> and IEnumerator<T>
- IEnumerable<T> and IDisposable
- Implementing the Enumeration Interfaces
- 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
- KeyedCollection<TKey,TItem> and DictionaryBase
- DictionaryBase
- ReadOnlyCollection<T>
- Collection<T> and CollectionBase
- 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+)
- IComparer and Comparer
- StringComparer
- IStructuralEquatable and IStructuralComparable
- IEqualityComparer and EqualityComparer
- Enumeration
- 8. LINQ Queries
- Getting Started
- Fluent Syntax
- Chaining Query Operators
- Why extension methods are important
- Composing Lambda Expressions
- Lambda expressions and Func signatures
- Lambda expressions and element typing
- Natural Ordering
- Other Operators
- Chaining Query 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
- Combining Interpreted and Local Queries
- AsEnumerable
- How Interpreted Queries Work
- 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
- Expression Trees
- The Expression DOM
- Delegates Versus Expression Trees
- 9. LINQ Operators
- Overview
- SequenceSequence
- Filtering
- Projecting
- Joining
- Ordering
- Grouping
- Set operators
- Conversion methods: Import
- Conversion methods: Export
- SequenceElement or Value
- Element operators
- Aggregation methods
- Quantifiers
- VoidSequence
- Generation methods
- SequenceSequence
- 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
- Take, TakeLast, Skip, and SkipLast
- TakeWhile and SkipWhile
- Distinct and DistinctBy
- Where
- Projecting
- Select
- Query syntax
- Enumerable implementation
- Overview
- Indexed projection
- Select subqueries and object hierarchies
- Subqueries and joins in EF Core
- Projecting into concrete types
- SelectMany
- Query syntax
- Enumerable implementation
- Overview
- Multiple range variables
- Thinking in query syntax
- Joining with SelectMany
- SelectMany in EF Core
- Outer joins with SelectMany
- Select
- 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
- The Zip Operator
- Join and GroupJoin
- 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
- Chunk
- GroupBy
- 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
- Overview
- 10. LINQ to XML
- Architectural Overview
- What Is a DOM?
- The LINQ to XML DOM
- 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
- Parent Navigation
- Peer Node Navigation
- Attribute Navigation
- Child Node 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
- Specifying Namespaces in the X-DOM
- The X-DOM and Default Namespaces
- Prefixes
- Namespaces in XML
- Annotations
- Projecting into an X-DOM
- Eliminating Empty Elements
- Streaming a Projection
- Architectural Overview
- 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
- 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
- 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
- Utf8JsonReader
- XmlReader
- 12. Disposal and Garbage Collection
- IDisposable, Dispose, and Close
- Standard Disposal Semantics
- Close and Stop
- When to Dispose
- Clearing Fields in Disposal
- Anonymous Disposal
- Standard Disposal Semantics
- 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
- Forcing Garbage Collection
- Tuning Garbage Collection at Runtime
- Memory Pressure
- Array Pooling
- Optimization Techniques
- Managed Memory Leaks
- Timers
- Diagnosing Memory Leaks
- Weak References
- Weak References and Caching
- Weak References and Events
- IDisposable, Dispose, and Close
- 13. Diagnostics
- Conditional Compilation
- Conditional Compilation Versus Static Variable Flags
- The Conditional Attribute
- Alternatives to the Conditional attribute
- 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
- Conditional Compilation
- 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
- Returning values
- Exceptions
- Exceptions and autonomous tasks
- Continuations
- TaskCompletionSource
- Task.Delay
- Starting a Task
- 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
- 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
- Awaiting
- 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
- Binary Adapters
- Closing and Disposing Stream Adapters
- Text 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 Directory Class
- FileInfo and DirectoryInfo
- Path
- Special Folders
- Querying Volume Information
- Catching Filesystem Events
- The File Class
- 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 Application Manifest (Windows)
- Deploying an application manifest
- Modules
- The Assembly Class
- The Assembly Manifest
- 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
- 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
- Assembly Load Contexts
- Whats in an Assembly
- 18. Reflection and Metadata
- Reflecting and Activating Types
- Obtaining a Type
- TypeInfo
- Obtaining array types
- Obtaining nested types
- Type Names
- Nested type names
- Generic type names
- Array and pointer type names
- ref and out parameter type names
- Base Types and Interfaces
- Instantiating Types
- Generic Types
- Obtaining a Type
- 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 Fields and Properties
- Emitting Constructors
- Calling base constructors
- Attaching Attributes
- Emitting Methods
- Emitting Generic Methods and Types
- Defining Generic Methods
- Defining Generic Types
- Awkward Emission Targets
- Uncreated Closed Generics
- Circular Dependencies
- Parsing IL
- Writing a Disassembler
- Reflecting and Activating Types
- 19. Dynamic Programming
- The Dynamic Language Runtime
- Numeric Type Unification
- Dynamic Member Overload Resolution
- Simplifying the Visitor Pattern
- Variations
- Anonymously Calling Members of a Generic Type
- Simplifying the Visitor Pattern
- 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 in Application Servers
- Immutable Objects
- Thread Safety and .NET Types
- Nonexclusive Locking
- Semaphore
- Asynchronous semaphores and locks
- Writing an EnterAsync extension method
- Parallel.ForEachAsync
- Reader/Writer Locks
- Upgradeable locks
- Lock recursion
- Semaphore
- Signaling with Event Wait Handles
- AutoResetEvent
- Two-way signaling
- ManualResetEvent
- CountdownEvent
- Creating a Cross-Process EventWaitHandle
- Wait Handles and Continuations
- WaitAny, WaitAll, and SignalAndWait
- Alternatives to WaitAll and SignalAndWait
- AutoResetEvent
- 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
- 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
- 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
- Creating and Starting Tasks
- 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
- Why PFX?
- 23. Span<T> and Memory<T>
- Spans and Slicing
- CopyTo and TryCopyTo
- Working with Text
- Memory<T>
- Forward-Only Enumerators
- Working with Stack-Allocated and Unmanaged Memory
- Spans and Slicing
- 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 Delegates
- Callbacks with Function Pointers
- 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
- 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
- Regular Expression Basics
- Index
O'Reilly Media - inne książki
-
Promocja Promocja 2za1
With the shift from data warehouses to data lakes, data now lands in repositories before it's been transformed, enabling engineers to model raw data into clean, well-defined datasets. dbt (data build tool) helps you take data further. This practical book shows data analysts, data engineers, BI developers, and data scientists how to create a true se- ePub + Mobi pkt
(203,15 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł (-15%) -
Promocja Promocja 2za1
Get a concise yet comprehensive overview of Airtable, one of the most versatile platforms to emerge from the no-code movement. Whether you're planning a new project, sharing data analysis within your organization, tracking a detailed initiative among stakeholders, or dealing with any other project that requires well-structured collaboration, this p- ePub + Mobi pkt
(245,65 zł najniższa cena z 30 dni)
254.15 zł
299.00 zł (-15%) -
Promocja Promocja 2za1
Implementing and designing systems that make suggestions to users are among the most popular and essential machine learning applications available. Whether you want customers to find the most appealing items at your online store, videos to enrich and entertain them, or news they need to know, recommendation systems (RecSys) provide the way.In this- ePub + Mobi pkt
(245,65 zł najniższa cena z 30 dni)
254.15 zł
299.00 zł (-15%) -
Promocja Promocja 2za1
Cyber risk management is one of the most urgent issues facing enterprises today. This book presents a detailed framework for designing, developing, and implementing a cyber risk management program that addresses your company's specific needs. Ideal for corporate directors, senior executives, security risk practitioners, and auditors at many levels,- ePub + Mobi pkt
(186,15 zł najniższa cena z 30 dni)
194.65 zł
228.99 zł (-15%) -
Promocja Promocja 2za1
Learn the core concepts of Vue.js, the modern JavaScript framework for building frontend applications and interfaces from scratch. With concise, practical, and clear examples, this book takes web developers step-by-step through the tools and libraries in the Vue.js ecosystem and shows them how to create complete applications for real-world web proj- ePub + Mobi pkt
(203,15 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł (-15%) -
Promocja Promocja 2za1
Many UX designers are surprised to learn that much of the job isn't about drawing things. It's about knowing what to draw and how to convince people to build it. Whether you're a one-person design team making products from scratch or a C-level product leader managing many products and strategies, UX for Business is your missing guide to real-world- ePub + Mobi pkt
(160,65 zł najniższa cena z 30 dni)
160.65 zł
189.00 zł (-15%) -
Promocja Promocja 2za1
With demand for scaling, real-time access, and other capabilities, businesses need to consider building operational machine learning pipelines. This practical guide helps your company bring data science to life for different real-world MLOps scenarios. Senior data scientists, MLOps engineers, and machine learning engineers will learn how to tackle- ePub + Mobi pkt
(245,65 zł najniższa cena z 30 dni)
254.15 zł
299.00 zł (-15%) -
Promocja Promocja 2za1
As tech products become more prevalent today, the demand for machine learning professionals continues to grow. But the responsibilities and skill sets required of ML professionals still vary drastically from company to company, making the interview process difficult to predict. In this guide, data science leader Susan Shu Chang shows you how to tac- ePub + Mobi pkt
(245,65 zł najniższa cena z 30 dni)
254.15 zł
299.00 zł (-15%) -
Promocja Promocja 2za1
If your organization plans to modernize services and move to the cloud from legacy software or a private cloud on premises, this book is for you. Software developers, solution architects, cloud engineers, and anybody interested in cloud technologies will learn fundamental concepts for cloud computing, migration, transformation, and development usin- ePub + Mobi pkt
(203,15 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł (-15%) -
Promocja Promocja 2za1
Analytics projects are frequently long, drawn-out affairs, requiring multiple teams and skills to clean, join, and eventually turn data into analysis for timely decision-making. Alteryx Designer changes all of that. With this low-code, self-service, drag-and-drop workflow platform, new and experienced data and business analysts can deliver results- ePub + Mobi pkt
(245,65 zł najniższa cena z 30 dni)
254.15 zł
299.00 zł (-15%)
Dzięki 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.
Masz pytanie o konkretny tytuł? Napisz do nas: sklep@helion.pl
Książka drukowana
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.