L

Lambda expressions2nd3rd4th5th
  capturing variables
    implementing captured variables with generated class
    multiple instantiations of local variables
    from multiple scopes
  expression trees
    compiling to delegates
    limitations of conversions to
  syntax of
Language Design Meetings (LDMs)
language support
  ? type suffix
  conversions
  lifted operators
  null literal
  nullable logic
  null-coalescing ?? operator
lazy exceptions2nd
lazy execution
  importance of
  overview of
LDMs.
    See Language Design Meetings.
Length property2nd3rd
let clause
libraries for dynamic typing
lifted operators
lifting
linking
LINQ framework
  data access with
  overview of
  syntax of
LINQ queries
List collection2nd3rd
literals
  binary integer
  default
  index
  null
  range.
    See also interpolated string literals.
literal-to-type conversion
local methods
  declaring
  escaping containing code
  implementing
  interacting with definite assignment
  optimizing
  read-only fields and
  usage guidelines
    iterator/async argument validation
    suggestions for readability
  variables within
    capturing ref parameters of enclosing methods
    capturing variables in scope
local variables
  implicitly typed
  multiple instantiations of
  overview of2nd
localization
  formatting for machines
  formatting with default cultures
  using FormattableString
    compiler handling of interpolated string literals
    formatting FormattableString in specific cultures
    uses for FormattableString
    using FormattableString with older versions of .NET
localized data
lock statement
logging
  caller information attributes
  as side effect
logic
  nullable
  performing on another piece of state
loops
  awaiting within
  foreach

M

machine.builder field
machine.builder.Start() method
machine-readable strings
Main() method2nd3rd4th5th6th7th8th9th10th
matching.
    See pattern matching.
matching properties in patterns
MaxBy method
member initializers
members
  common members without common interface
  dynamically invoked
  non-obvious member names
  of other types, referring to
  static.
    See also expression-bodied members.
message pump
MessageBox.Show method
metadata
method calls
  chaining
  determining meaning of
method completion
  argument validation
  handling cancellations
  lazy exceptions
  returning successfully
method declarations.
    See also asynchronous methods, method declarations.
method flow.
    See asynchronous methods, flow.
method group conversions2nd
method returns
method syntax
[MethodImpl] attribute
MethodInfo2nd
methods
  anonymous
  enclosing
  expression-bodied
  generic
  interface
  partial
  reexposing
  type arguments to.
    See also asynchronous methods; ; extension methods; ; MoveNext() method.
Microsoft C# compiler
Microsoft.Bcl package, NuGet
Microsoft.CSharp.RuntimeBinder
migration of nullable reference types
  best practices for using bang operators
  end results
  expressing nullable intent with attributes
  iterations
  null-inconsistent generics
minor versions
model-view-viewmodel (MVVM)
modreq modifier
Monitor.Exit method
Monitor.TryEnter method
MoreLinq package
MoveNext() method2nd3rd4th5th6th
  control flow and
    awaiting within loops
    awaiting within try/finally blocks
    control flow between await expressions
  examples of
  general structure of
  implementing
MulticastDelegate
mutability of in parameters
mutable value types
MVVM.
    See model-view-viewmodel.

N

name attribute
named arguments, nontrailing
named indexers
named types
nameof operator2nd3rd4th
  accessing identifiers with
  common uses of
    argument validation
    attributes
    property change notifications for computed properties
  examples of
  tricks when using
    array types
    generics
    namespaces
    nullable value types
    predefined aliases
    referring to members of other types
    simple name
    using aliases
names
  accessing elements by
  of members
  of parameters
  simple name.
    See also element names.
namespace aliases
  extern aliases
  global namespace
  qualifier syntax
namespaces
nested patterns
.NET platform
  caller information attributes with
  FormattableString with
  formatting strings in
    custom formatting with format strings
    localization
    simple string formatting
Noda Time2nd3rd4th5th
nonasync method
noncompleted tasks
nongeneric ValueTuple struct
noninvariant cultures
non-obvious member names
nonpublic APIs
nontrailing named arguments
nontuple types, deconstruction of
  compiler handling of Deconstruct calls
  extension deconstruction methods
  instance deconstruction methods
  overloading
Not started state
NotifyOfPropertyChange method
NotImplementedException
NotSupportedException
NuGet (NuPack) package manager
null conditional operators2nd
  dereferencing properties
  handling Boolean comparisons
  indexers and
  limitations of
  overview of
  working with
    event raising
    null-returning APIs
null literals
null values
nullability checking
Nullable class
nullable integers
nullable intent
Nullable interface
nullable logic
nullable reference types2nd
  advantages of
  bang operator
  changing meaning when using reference types
  at compile time
  entering
  at execution time
  future improvements to
    deeper thinking about generics
    enabling nullability checking
    opt-in parameter validation
    providing compilers with semantic information
  migration of
    best practices for using bang operators
    end results
    expressing nullable intent with attributes
    iterations
    null-inconsistent generics
Nullable struct
nullable value types2nd3rd
  as operator and
  expressing absence of information
  language support
    ? type suffix
    conversions
    lifted operators
    null literal
    nullable logic
    null-coalescing ?? operator
  Nullable struct
null-coalescing ?? operator2nd
null-inconsistent generics
NullPointerException
NullReferenceException2nd3rd4th5th6th7th8th9th
null-returning APIs
numeric literals, improvements to
  binary integer literals
  underscore separators

O

object initializers2nd
  benefits of single expressions for initialization
  enhancements to
  indexers in
  overview of
  test code vs. production code
object-based collections
object.Equals method
object-relational mapping (ORM)
ObsoleteAttribute
OnPropertyChanged method
op_Addition operator
OpenWrap project
OperationCanceledException2nd
operations, retrying
operators
  as operator
  conditional ?: operator
  default
  equality operators
  expression-bodied
  inequality
  is operator
  lifted
  null-coalescing ??
  typeof.
    See also bang operators; ; null conditional operators.
opt-in parameter validation
OR operator
OrderBy method
ordering
  comparisons
    regular equality and
    structural equality and
  evaluation order of pattern-based switch statements
ORM.
    See object-relational mapping.
out parameters
out variables
  inline variable declarations for out parameters
  restrictions lifted in C# 7.3 for
out-of-process data
overload resolution
overloading
  with in parameters
  overview of

P

parallelism
parameters
  in asynchronous methods
  with default values
  determining meaning of method calls
  impact on versioning
    adding overloads
    default value changes
  name changes
  opt-in parameter validation
  optional
  type parameters.
    See also ref parameters.
params modifier
partial methods
partial types
pass-through properties
pattern matching
  opportunities for
  overview of.
    See also recursive pattern matching.
pattern variable scopes
pattern variables
pattern-based fixed statements
pattern-based switch statements
patterns
  in C# 7.0
  constant
  of deconstruction
  with is operator
  matching properties in
  omitting types from
  with switch statements
    evaluation order of pattern-based switch statements
    guard clauses
    pattern variable scopes for case labels
  type
  var
Paused state
pausing2nd
position, accessing elements by
positional arguments
pragma directives
Preconditions.CheckNotNull
predefined aliases
primary constructors
private protected2nd
production code vs. test code
projection initializer
properties
  delegating
  dereferencing
  existing, deconstruction assignments to
  getter/setter access for
  history of
  matching in patterns
  pass-through.
    See also automatically implemented properties.
Properties property
property declarations
PropertyChangedBase class
PropertyChangedEventArgs
PropertyChangedEventHandler
PropertyInfo2nd

Q

queries, LINQ
query expressions
  invocations
  LINQ syntax
  range variables
  translating from C# to C#
  transparent identifiers
Queryable class

R

raising events
range variables
ranges
  applying
  range literals
  range types
RanToCompletion
readability
  formatting for
  suggestions for
read-only automatically implemented properties
read-only computed properties
  delegating properties
  pass-through properties
  performing simple logic on another piece of state
read-only fields
read-only property
read-only structs
read-only variables
  implicit copying with
  references to
readonly
  declaring structs as
  modifier for structs
readonly modifier
ReadOnlyCollection
record types2nd
recursive pattern matching
  deconstruction patterns
  matching properties in patterns
  omitting types from patterns
redundant copying
reevaluating expressions
reexposing methods
ref extension methods
ref features
ref keyword2nd
ref locals
  conditional ?: operator in C# 7.2
  initializing
  local variables
  overview of
  ref fields
  ref readonly in C# 7.2
  ref values in C# 7.2
  references to read-only variables
  types
ref parameters
  in C# 7.2
  of enclosing methods
  overview of
ref readonly
ref returns
  conditional ?: operator in C# 7.2
  overview of
  ref readonly in C# 7.2
  ref values in C# 7.2
refactoring
reference conversion
reference types2nd3rd4th.
    See also nullable reference types.
    See also nullable reference types.
    See also nullable reference types.
    See also nullable reference types.
ReferenceEquals
reflection
ref-like structs, in C# 7.2
  IL representation of
  rules for
  Span
  stackalloc
regular equality
regular parameters
relational operators
release builds
resolution.
    See overload resolution.
resource disposal
Result property
rethrowing exception filters
retry policies
retrying operations
return statement2nd
return types
return values, wrapping
returning
Roslyn code analyzer2nd
RuntimeBinderException2nd3rd4th

S

safe awaiting
schemaless entity type
scopes
  capturing variables in2nd
  pattern variable
SecurityContext class
select clause
Select method
semantic information
separators.
    See underscore separators.
serializing XML
SetException method
SetResult method2nd
SetStateMachine() method2nd3rd4th
short date
signatures.
    See add signatures.
simple name
Sin method
single expressions
single value
slow path
source compatible
Span feature2nd
specialized collections
SqlCommand constructor
SqlException
stack trace
stackalloc2nd
  pattern-based fixed statements in C# 7.3
  with initializers in C# 7.3
StackOverflowException
Start() method2nd3rd
state, performing logic on
state machines2nd
  boxing
  structure of
statement bodies
statements.
    See fixed statements, pattern-based.
static classes
static directives
  extension methods and
  importing static members
static members
static typing2nd
string class
string representations of tuples
stringArray
StringBuilder
StringCollection2nd
string.Format method
string.IsNullOrEmpty method2nd
string.IsNullOrWhiteSpace
strings
  accessing identifiers with nameof
    common uses of nameof
    examples of
    tricks when using nameof
  formatting in .NET
    custom formatting with format strings
    localization
    simple string formatting
  guidelines
    messages for end users
    messages for other developers
  handling
  interpolated string literals
    compiler handling of interpolated string literals
    formatting strings in interpolated string literals
    interpolated verbatim string literals
    simple interpolations
  limitations of
    deferring formatting for strings
    formatting for readability
    limitations of interpolated string literals
  localization using FormattableString
    compiler handling of interpolated string literals
    formatting FormattableString in specific cultures
    uses for FormattableString
    using FormattableString with older versions of .NET
  machine-readable
strongly typed
structs
  automatically implemented properties in
  declaring as readonly in C# 7.2
    implicit copying with read-only variables
    XML serialization implicitly read-write
  nongeneric ValueTuple struct
  readonly modifer for.
    See also ref-like structs, in C# 7.2.
structural equality
stub method2nd
Substring method2nd
switch expressions
switch statements2nd
  pattern-based
  patterns with
    guard clauses
    pattern variable scopes for case labels
synchronization contexts
SynchronizationContext class
synchronous code
SynonymInfo indexer
System.Collections.CollectionBase class
System.Collections.Generic
System.ComponentModel namespace
System.Diagnostics.StackTrace
System.Linq namespace
System.Linq.Enumerable class2nd
System.Linq.Expressions namespace
System.Linq.Queryable class
System.Object.ToString() method
System.Runtime.CompilerServices namespace2nd3rd4th5th6th
System.Runtime.CompilerServices.AsyncMethodBuilderAttribute
System.Runtime.CompilerServices.FormattableStringFactory class
System.Runtime.CompilerServices.Unsafe package
System.Runtime.INotifyCompletion interface
System.Runtime.InteropServices namespace
System.Threading.Tasks.Extensions package
System.Tuple
System.TupleExtensions class
System.ValueTuple

T

target-typed new
Task class
Task Parallel Library (TPL)2nd
Task property
task types
  in C# 7
    building
    ValueTask
  custom
TaskAwaiter
task-based asynchronous pattern
TaskCanceledException
Task.ConfigureAwait
Task.Delay2nd
Task.FromCanceled
Task.FromException
Task.FromResult2nd3rd
Task.Result
Task.Result property
Task.Wait() method2nd
Task.WhenAll() method
Task.Yield() method
test code vs. production code
TestCaseSource attribute
testing asynchrony
this keyword2nd
ThreadAbortException
throw expressions
throw statement2nd
ThrowIfCancellationRequested
Title property
tokens
ToList() method
ToString() method2nd3rd4th5th
ToString(IFormatProvider) method2nd
ToString(string, IFormatProvider) method
TPL.
    See Task Parallel Library.
trampoline technique
translating query expressions
transparent identifiers
true operator
Try .NET
try block
try statement
TryAdd method
try/catch block
try/finally blocks
TryGetNext method2nd
Tuple class2nd
tuple expression
tuple literals
  conversions
  conversions to tuples types from
    explicit conversions
    implicit conversions
  deconstruction
  inferred element names for in C# 7.1
  syntax
  types of
tuple types
  conversions between
    generic variance conversions
    tuple type identity conversions
  conversions from tuple literals
  element name checking in inheritance
  equality operators in C# 7.3
  inequality operators in C# 7.3
  syntax
Tuple<,> class
TupleElementNamesAttribute
tuples2nd
  alternatives to
    anonymous types
    named types
    System.Tuple
  as bags of variables
    accessing elements by name
    accessing elements by position
  in CLR
    element name handling
    extension methods
    nongeneric ValueTuple struct
    regular equality and ordering comparisons
    string representations of tuples
    structural equality and ordering comparisons
    System.ValueTuple
    womples
  conversions
    element name checking in inheritance
    equality operators in C# 7.3
    inequality operators in C# 7.3
    uses of
  deconstruction of
  dynamic binder and
    element names
    high element numbers
  fields
  implementing conversions
  large
  local variables
  nonpublic APIs
  overview of
  as single value
two-pass exception model
type arguments
  to methods
  overview of
type classes2nd
type constraints
  generic
  overview of
type inference
Type Library Importer tool (tlbimp)
type parameters
type patterns
typeof operator2nd3rd
types2nd
  arrays
  compiler-generated
  exceptions
  indexes
  named
  omitting from patterns
  range
  record
  reference
  referring to members of
  return
  static.
    See also anonymous types; ; generic types; ; nontuple types, deconstruction of; ; nullable reference types; ; nullable value types; ; partial types; ; task types; ; tuple types.
type-to-type conversion
typing
  explicit
  static
  terminology of.
    See also dynamic typing; implicit typing.

U

unary operator2nd
underlying type
underscore separators
unit-test frameworks
Unity
Universal Windows Applications (UWA/UWP)
unmanaged constraint
UnmanagedType enum
unnamed arguments
unsafe awaiting
unspeakable names2nd
unwrapping exceptions
users.
    See end users.
using await statement
using statement2nd
using static directive2nd3rd4th
UWA/UWP.
    See Universal Windows Applications.

V

validation
  arguments2nd
  iterator/async arguments.
    See also opt-in parameter validation.
Value property
value types2nd.
    See also nullable value types.
    See also nullable value types.
values
  ref values in C# 7.2
  tuples as single values
  wrapping return values.
    See also default values; ; dynamic values.
ValueTask
ValueTuple constructor
ValueTuple struct, nongeneric
ValueTuple types
var keyword2nd
var pattern
variable declarations
variables
  captured
  capturing
    from multiple scopes
    implementing with generated class
    in foreach loops
    in scopes
  existing, deconstruction assignments to
  within local methods
    capturing ref parameters of enclosing methods
    declaring local method after declaring captured variables
    local methods and read-only fields
    local methods interacting with definite assignment
  new, deconstruction to
  range
  tuples as bags of
    accessing elements by name
    accessing elements by position.
    See local variables; ; out variables.
variance
  conversions
  in delegate declarations
  in interface declarations
  restrictions on using.
    See also generic variance.
VARIANT type
versioning, impact of parameters on
  adding overloads
  default value changes
  parameter name changes
void method2nd3rd4th

W

Wait() method2nd3rd
WaitForNextAsync method2nd
weakly typed
WebAssembly
WebClient2nd
WebClient.DownloadStringAsync method
WebException2nd
WebRequest
WhenAll() method
where clause
Where method
Windows Forms
Windows Presentation Foundation (WPF)
Windows Runtime platform (WinRT)
womples
wrapping return values

X

Xamarin Forms
XElement2nd
XML serialization
XNamespace

Y

yield statements2nd3rd4th5th
yield type
Yield() method
YieldAwaitable

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset