[SYMBOL][A][B][C][D][E][F][G][H][I][J][K][L][M][N][O][P][Q][R][S][T][U][V][W][X][Y]
! operator, 2nd
!= operator, 2nd
& operator
&& operator
== operator, 2nd, 3rd, 4th
=> syntax, 2nd, 3rd, 4th
?. operator, 2nd
?: operator, 2nd, 3rd, 4th, 5th
?? operator, 2nd
^ operator
_ discards
| operator
Action delegate
add signatures
general-purpose
specialized
Add() method, 2nd, 3rd, 4th, 5th, 6th, 7th
Add(key, value) method
AddOrUpdate method
AddRange method
Advanced Build Settings dialog box
AggregateException
aliases
extern
global namespace
predefined.
See also namespace aliases.
aliasing
alignment
alt.NET community
AND operator
anonymous classes, Java
anonymous functions
asynchronous
overview of
anonymous methods, 2nd, 3rd
anonymous object creation expression
anonymous types, 2nd, 3rd
as alternatives to tuples
behavior of
compiler-generated types
limitations of
syntax of
Any() method
application programming interfaces (APIs)
nonpublic
null-returning
args parameter array
ArgumentException
ArgumentNullException, 2nd, 3rd
ArgumentOutOfRangeException
arguments
iterator/async
named
validating, 2nd.
See also type arguments.
See also type arguments.
arity
array types
ArrayList, 2nd
arrays, 2nd
as operator, 2nd, 3rd
as-followed-by-if statements
AsQueryable() method
assemblies, interop
Assert.ThrowsAsync method
assignment operator
assignments
deconstruction
to existing properties
to existing variables
definite
AsTask method
async methods
async/await feature, 2nd
asynchronous code
asynchronous anonymous functions
asynchronous method declarations
parameters in asynchronous methods
return types from asynchronous methods
asynchronous method flow
awaitable pattern members
awaited
evaluating await expressions
exception unwrapping
method completion
avoid mixing with synchronous code
await expressions
awaitable patterns
restrictions on
control flow and MoveNext()
awaiting within loops
awaiting within try/finally blocks
control flow between await expressions
custom task types, 2nd
execution contexts
flow
functions
implementing MoveNext() method
examples of
general structure of
zooming into await expressions
main methods in C# 7.1
structure of generated code
MoveNext() method
SetStateMachine method
state machine boxing
structure of state machines
stub method
usage tips
allowing cancellation
avoiding context capture using ConfigureAwait
enabling parallelism
testing asynchrony
wrapping return values
asynchronous integration
asynchronous iterators
asynchronous resource disposal with using await
with foreach await
asynchronous iterations
with foreach await
overview of
asynchronous methods
flow
await
awaitable pattern members
evaluating await expressions
exception unwrapping
method completion
method declarations
parameters in asynchronous methods
return types from asynchronous methods
modeling
parameters in
return types from
asynchronous resource disposal
asynchrony
overview of
fundamentals of asynchronous execution
modeling asynchronous methods
synchronization contexts
testing
AsyncTaskMethodBuilder class, 2nd, 3rd, 4th
AsyncTaskMethodBuilderAttribute
AsyncVoidMethodBuilder
attributes
expressing nullable intent with
for fields backing automatically implemented properties.
See also caller information attributes.
automatically implemented properties, 2nd, 3rd
attributes for fields backing
initializing
read-only
in structs
await expressions, 2nd
awaitable patterns
control flow between
evaluating
foreach await
overview of
restrictions on
using await statement
await operator
awaitable patterns, 2nd
awaiters, 2nd, 3rd
awaiting
within loops
within try/finally blocks
AwaitOnCompleted, 2nd
AwaitUnsafeOnCompleted method, 2nd, 3rd
bang operators
best practices
overview of
BenchmarkDotNet project
BigQuery
binary compatible
binary integer literals
binary-ish operator
BindableObject class
Binder class
binding, 2nd.
See also dynamic binding.
See also dynamic binding.
Blazor
boilerplate code
Boolean comparisons
boxing
behavior
state machines
buffers.
See fixed-size buffers.
BuilderType property
Button classes
Button.OnClick method
byte-wise access
ByteStream
C# 2
generics
advantages of
default operators
generic type initialization
generic type state
identifying
type constraints
type inference for type arguments to methods
typeof operators
iterators
evaluating finally blocks
evaluating yield statements
implementation sketches
lazy execution
overview of
language features in
minor features of
fixed-size buffers
InternalsVisibleTo
namespace aliases
partial types
pragma directives
separate getter/setter access for properties
static classes
nullable value types
expressing absence of information
language support
Nullable struct
simplified delegate creation
anonymous methods
delegate compatibility
method group conversions
C# 3
anonymous types
behavior of
compiler-generated types
limitations of
syntax of
automatically implemented properties
collection initializers
benefits of single expressions for initialization
overview of
extension methods
chaining method calls
declaring
invoking
implicit typing
implicitly typed arrays
implicitly typed local variables
typing terminology
Lambda expressions
capturing variables
expression trees
syntax of
language features in
LINQ
object initializers
benefits of single expressions for initialization
overview of
query expressions
LINQ syntax
range variables
translating from C# to C#
transparent identifiers
C# 4
COM interoperability improvements
linking primary interop assemblies
named indexers
optional parameters in COM
dynamic typing
advantages of
anonymous functions
anonymous types
dynamic behavior
explicit interface implementation
extension methods
generating IL for
generics and
limitations of
overview of, 2nd
usage suggestions
generic variance
examples of
in practice
restrictions on using variance
syntax for variance in interface declarations
language features in
named arguments
determining meaning of method calls
impact on versioning
optional parameters
determining meaning of method calls
impact on versioning
parameters with default values
C# 5
caller information attributes
behavior of
corner cases of
logging
with old versions of .NET
simplifying INotifyPropertyChanged implementations
capturing variables in foreach loops
language features in
C# 6
language features in
restrictions on expression-bodied members in
C# 7
custom task types in
building
ValueTask
improvements to numeric literals
binary integer literals
underscore separators
local methods
implementing
usage guidelines
variables within
out variables
inline variable declarations for out parameters
restrictions lifted in C# 7.3 for out variables
restrictions lifted in C# 7.3 for pattern variables
throw expressions
C# 7.0
language features in
patterns in
constant patterns
type patterns
var pattern
C# 7.1
asynchronous code in
default literals in
inferred element names for tuple literals in
language features in
C# 7.2
accessing private protected in
conditional ?: operator in
declaring structs as readonly in
implicit copying with read-only variables
readonly modifier for structs
XML serialization implicitly read-write
in parameters in
compatibility
extension methods with
guidance for
mutability of
overloading with
language features in
nontrailing named arguments in
ref parameters in
ref readonly in
ref values in
ref-like structs in
IL representation of
rules for
Span
stackalloc
C# 7.3
equality operators in
improved access to fixed-size buffers in
improvements in
attributes for fields backing automatically implemented properties
generic type constraints
overload resolution
inequality operators in
language features in
pattern-based fixed statements in
restrictions lifted for out variables
restrictions lifted for pattern variables
stackalloc with initializers in
C# 8
asynchronous integration
asynchronous iteration with foreach await
asynchronous iterators
asynchronous resource disposal with using await
default interface methods
extensions
indexes
applying
index literals
index types
nullable reference types
advantages of
bang operator
changing meaning when using reference types
at compile time
entering
at execution time
future improvements to
migration of
ranges
applying
range literals
range types
record types
recursive pattern matching
deconstruction patterns
matching properties in patterns
omitting types from patterns
switch expressions
target-typed new
type classes
Caliburn Micro MVVM framework
call sites
callback
caller information attributes, 2nd
attributes with
behavior of
corner cases of
dynamically invoked members
implicit constructor invocations
non-obvious member names
query expression invocations
logging
with old versions of .NET
simplifying INotifyPropertyChanged implementations
CallerFilePathAttribute
CallerLineNumberAttribute
CallerMemberNameAttribute, 2nd, 3rd
cancellations
allowing
handling
CancellationToken, 2nd, 3rd, 4th, 5th
CancellationTokenSource, 2nd
candidate types
captured variables, 2nd
capturing
ref parameters of enclosing methods
variables
in foreach loops
implementing captured variables with generated class
multiple instantiations of local variables
from multiple scopes
carriage-return line-feed separators
case labels
case-specific exception filters
catch block, 2nd
catch clause
ceremony
chaining method calls
checking nullability
class keyword
classes
generated
static
type
clauses, guard
closed constructed types
closures, 2nd
CLR.
See Common Runtime Language.
CodedInputStream class
collection initializers, 2nd
benefits of single expressions for initialization
enhancements to
extension methods in
creating general-purpose add signatures
creating specialized add signatures
reexposing existing methods
overview of
test code vs. production code
colons, 2nd
COM.
See Component Object Model.
Common Language Runtime (CLR), tuples in
element name handling
extension methods
implementing tuple conversions
nongeneric ValueTuple struct
regular equality and ordering comparisons
string representations of
structural equality and ordering comparisons
System.ValueTuple
womples
community
Community Technology Preview (CTP)
Company class
CompareTo method
comparisons
Boolean, handling
ordering
regular equality and
structural equality and
compatibility
of delegates
of in parameters
compile time
Compile() method
compile-time error
compiler handling
of Deconstruct calls
of interpolated string literals
compiler-generated types
compilers
overview of
providing with semantic information
compiling expression trees
Complete state
completed tasks
Component Object Model (COM)
improvements to interoperability
linking primary interop assemblies
named indexers
optional parameters in
composite format string
computed properties
property change notifications for
read-only
delegating properties
pass-through properties
performing simple logic on another piece of state
conditional ?: operator
conditional operators.
See null conditional operators.
ConfigureAwait method, 2nd
ConfigureAwaitChecker.Analyzer NuGet package
Console.WriteLine method, 2nd, 3rd, 4th
constant patterns
constraints, type
generic
overview of
construction
constructor constraint
constructor invocations
context capture
contexts
execution
synchronization
continuations
contravariance
control flow
between await expressions
MoveNext() and
awaiting within loops
awaiting within try/finally blocks
Control.BeginInvoke
Control.Invoke
conversion constraint
conversions
between tuple types
generic variance conversions
tuple type identity conversions
explicit
to expression trees
generic variance
identity conversions of tuple types
implicit
method group conversions
of tuples
element name checking in inheritance
equality operators in C# 7.3
implementing
inequality operators in C# 7.3
uses of
to tuples types
copying, implicitly
corner cases, of caller information attributes
attributes with caller information attributes
dynamically invoked members
implicit constructor invocations
non-obvious member names
query expression invocations
Count() method, 2nd, 3rd
covariance
cruft
CTP.
See Community Technology Preview.
CultureInfo
CultureInfo.CurrentCulture property
CultureInfo.InvariantCulture property, 2nd
cultures
default
formatting FormattableString in
noninvariant
Current property, 2nd
damn it operators.
See bang operators.
data access with LINQ
database access
DateTime
DateTime.Add(TimeSpan) method
DateTimeOffset
debug
declarations
delegate declarations
interface declarations
variable declarations.
See also asynchronous methods, method declarations.
declaring
extension methods
local methods after declaring captured variables
decompilers, 2nd
Deconstruct methods, 2nd, 3rd
deconstruction
assignments to existing properties
assignments to existing variables
to new variables
of nontuple types
compiler handling of Deconstruct calls
extension deconstruction methods
instance deconstruction methods
overloading
opportunities for
of tuple literals
of tuples
deconstruction patterns
default cultures
default indexer
default interface methods
default literals, 2nd
default operators, 2nd
default values
changing
parameters with
definite assignment, 2nd
delegate creation expressions
delegate declarations
delegate keyword
delegates
compatibility of
compiling expression trees to
creating
anonymous methods
method group conversions
delegating properties
dereferencing properties
Dictionary collection
directives.
See pragma directives.
Dispose() method, 2nd, 3rd
Distinct() method
DLR.
See Dynamic Language Runtime.
dot operator
dot syntax
DownloadString
dynamic behavior
dynamic view of Json.NET
examples of database access
ExpandoObject
implementing
dynamic binder
element names
high element numbers
tuples and
dynamic binding
dynamic values and
overview of
dynamic formatting
Dynamic Language Runtime (DLR)
dynamic typing, 2nd
anonymous functions
anonymous types
applying dynamic binding
compilers
dynamic behavior
dynamic view of Json.NET
examples of database access
ExpandoObject
implementing
dynamic values and dynamic binding
dynamic values and static types
extension methods
generating IL for
generics and
implementing explicit interfaces
libraries for
limitations of
overview of, 2nd
usage suggestions
common members without common interface
reflection
dynamic values
dynamic binding and
static types and
dynamically invoked members
DynamicMetaObject
DynamicObject class, 2nd
element initializers
element names
checking in inheritance
dynamic binder and
at execution time
handling
inferred
in metadata
in tuple literal conversions
elements
accessing by name
accessing by position
copying
encapsulation
enclosing methods
end users
entry points
Enumerable class
Enumerable.Count() method, 2nd
enums
equality
regular
structural
equality operators, 2nd
Equals() method, 2nd, 3rd, 4th, 5th
evaluation order
event subscription
EventHandler, 2nd
EventInfo
events, raising
exception filters
case-specific
logging as side effect
rethrowing
retrying operations
syntax of
catching exception type multiple times
two-pass exception model
exception types
exceptions
lazy
unwrapping
exclusive OR operator
Executing state
execution
asynchronous
element names at time of
execution contexts
execution time
ExecutionContext class
ExecutionContext.Capture
ExecutionContext.Run
ExpandoObject
explicit conversions
explicit interfaces
explicit typing
exposing methods
expression bodies
Expression class, 2nd
expression trees, 2nd, 3rd
compiling to delegates
limitations of conversions to
expression-bodied indexers
expression-bodied lambda expressions
expression-bodied members, 2nd
guidelines for
read-only computed properties
delegating properties
pass-through properties
performing simple logic on another piece of state
restrictions on
expression-bodied methods
expression-bodied operators
expressions
reevaluating
single
switch
throw expressions.
See also await expressions.
extended type
[Extension] attribute
extension deconstruction methods
extension methods
chaining method calls
in collection initializers
creating general-purpose add signatures
creating specialized add signatures
reexposing existing methods
declaring
with in parameters in C# 7.2
invoking
overview of
ref extension methods
with ref parameters in C# 7.2
ref/in parameters in
static directives and
extensions
extern aliases
false operator
fast path
fetch result
Fibonacci sequence, 2nd
fields
attributes for
read-only
ref fields
File.ReadLines method
filters.
See also exception filters.
finally blocks, 2nd, 3rd, 4th
FirstOrDefault
fixed statements, pattern-based
fixed-size buffers
flow.
See also asynchronous methods, flow.
fluent syntax
for statement
foreach await statement
foreach loops
Format method
format string
FormattableString class, 2nd
formatting in noninvariant culture
formatting in specific cultures
localization using
with older versions of .NET
uses for
FormattableStringFactory class, 2nd
formatting
with default cultures
deferring for strings
dynamically
FormattableString in noninvariant cultures
FormattableString in specific cultures
for machines
for readability
strings in .NET
custom formatting with format strings
localization
simple string formatting
strings in interpolated string literals
from clause
function member
functions.
See anonymous functions.
generated classes
generated code, structure of
MoveNext() method
SetStateMachine method
state machine boxing
structure of state machines
stub method
generators
generic methods
generic type constraints
generic types
arity of
initializing
states
generic variance, 2nd
conversions
examples of
in practice
restrictions on using variance
syntax for variance in delegate declarations
syntax for variance in interface declarations
GenericParameter
generics, 2nd
advantages of
arity of generic methods
arity of generic types
type arguments
type parameters
default operators
dynamic typing and
generic type initialization
generic type state
identifying
null-inconsistent generics
overview of, 2nd
type constraints
type inference for type arguments to methods
typeof operators
GetAsyncEnumerator() method, 2nd
GetAwaiter() method, 2nd, 3rd, 4th, 5th, 6th
GetEnumerator() method, 2nd, 3rd
GetHashCode() method, 2nd, 3rd
GetPinnableReference method, 2nd
GetResult() method, 2nd, 3rd, 4th, 5th
GetStringAsync() method, 2nd
getter/setter access
GetType() method, 2nd, 3rd
GetValueOrDefault() method
global namespace aliases
globalization
Google.Protobuf package
goto statement, 2nd, 3rd
guard clauses, 2nd
Guid
Guid.NewGuid
handling catch block
hash codes
HasValue property, 2nd
Height property
HotSpot JIT compiler, Java
HttpClient, 2nd
HttpClient.GetStringAsync
HttpRequestException
IAsyncEnumerator interface, 2nd
IAsyncStateMachine interface
IAsyncStateMachine.SetStateMachine
IComparable interface
IComparable<T> interface
ICriticalNotifyCompletion method, 2nd
ICriticalNotifyCompletion.UnsafeOnCompleted
identifiers
accessing with nameof
common uses of nameof
nameof examples
tricks when using nameof
transparent
identity conversions, 2nd, 3rd
IDisposable interface, 2nd, 3rd, 4th
IDynamicMetaObjectProvider interface, 2nd, 3rd, 4th
IEnumerable interface
IEnumerable.GetEnumerator() method
IEnumerator interface
IEquatable interface
IFormatProvider interface
IFormattable interface, 2nd, 3rd
IFormattable.ToString(string, IFormatProvider) method
IIS.
See Internet Information Server.
IL.
See Intermediate Language.
ILogger interface
implicit constructor invocations
implicit conversions, 2nd
implicit copying
implicit typing, 2nd
implicitly typed arrays
implicitly typed local variables, 2nd
importing static members
in extension methods
in parameters, in C# 7.2
compatibility
extension methods with
guidance for
mutability of
overloading with
InAttribute attribute, 2nd
index literals
index types
IndexerNameAttribute
indexers
expression-bodied
named
null conditional operators and
in object initializers
indexes
applying
index literals
index types
inequality operators
inference.
See type inference.
inferring element names
infoof operator
information, absence of
inheritance
initializers
initializing, 6th.
See also collection initializers.
automatically implemented properties
benefits of single expressions for
generic types
ref locals
inline variable declarations
INotifyCompletion interface, 2nd
INotifyCompletion.OnCompleted method
INotifyPropertyChanged, 2nd
instance deconstruction methods
instance method
instantiations of local variables
int.TryParse
integration.
See asynchronous integration.
interface declarations
interface methods
interfaces
common members without common interface
explicit
interior pointer
Intermediate Language (IL)
generating for dynamic types
representation of ref-like structs
InternalsVisibleToAttribute attribute, 2nd, 3rd, 4th, 5th, 6th
Internet Information Server (IIS)
interop assemblies
interpolated string literals
compiler handling of
formatting strings in
interpolated verbatim string literals
limitations of
overview of
simple interpolations
interpolations
InvalidCastException
InvalidOperationException, 2nd
invariance
invariant culture
Invariant method, 2nd
invocations
implicit constructor invocations
query expression invocations
Invoke method
invoking extension methods
IOException
is operator, 2nd, 3rd, 4th, 5th
IsFixedSize property
IsReadOnlyAttribute, 2nd
[IsRefLikeAttribute] attribute
IStructuralComparable interface
IStructuralEquatable interface
Items property
iteration variables
iterations
asynchronous
overview of
iterator blocks, 2nd
iterator/async arguments
iterators, 2nd
asynchronous
evaluation of finally blocks
evaluation of yield statements
implementing
lazy execution
overview of
IXmlSerializable
Java HotSpot JIT compiler
JIT (just-in-time) compilers
Json.NET