L0, L1, L2 caches, DLR
Lambda, 2nd
lambda calculus
lambda expressions, 2nd, 3rd, 4th, 5th, 6th, 7th
caching
common uses in extension methods
converting to delegates
converting to expression trees
dynamic typing
event handlers
implicitly typed parameters, 2nd
inferring parameter and return types
restrictions when converting to expression trees
static checking
timing of checking the body
type inference
lambda.
See lambda expression.
LambdaExpression
Langer, Angelika
language complexity
language design
language designers, 2nd, 3rd, 4th
Language Integrated Query
language integration
language specification, 2nd, 3rd, 4th, 5th
iterators
lack of guarantees of memory layout
object initializer terminology
query continuations
query expressions
transparent identifiers
type inference
ubiquity of generics
languages
additional functionality for nullable types
behavior with nullable types
incorporating closures
Last
LinkedList<T>
layout of code, object initializers
lazy evaluation, 2nd
Lazy<T>
LDAP
leaf expressions, expression trees
learning
left outer joins
generated SQL
simulating with group joins
left sequence
legacy contracts, 2nd
let
contextual keyword
LINQ to SQL
libraries, 2nd, 3rd, 4th, 5th
DLR
duck typing
generics
licensing
lifetime management
lifetime, captured variables
LIFO
lifted conversions
lifted operators
limitations
C# 1 type system
generics
line breaks
line count, bad measure of complexity
LineReader
lines, iterating over a file
LinkedList
LinkedListNode
linking, Primary Interop Assemblies
LINQ, 2nd, 3rd, 4th, 5th, 6th, 7th.
See also Language Integrated Query.
anonymous types
data model
dynamic code
key enabling aspects
query styles, 2nd
standard query operators
third party providers
without query expressions
LINQ providers, building your own
LINQ to Entities
LINQ to Objects, 2nd, 3rd, 4th, 5th, 6th, 7th
covariance in C# 4
execution path
extended in System.Interactive
extending
LINQ to Rx
LINQ to SQL, 2nd, 3rd, 4th
DataContext
execution path
queries
LINQ to XML, 2nd, 3rd
declarative construction
design decisions
LINQPad, 2nd
Lippert, Eric, 2nd, 3rd, 4th, 5th
Liskov’s Substitution Principle
List<T>, 2nd, 3rd, 4th, 5th
collection initializers
lambda expression examples
lists
literals
default parameter values
little-endian
local variable declarations, anonymous methods
local variables, 2nd, 3rd, 4th, 5th
autogenerated for fake pass-by-value
captured by anonymous methods
dynamic
for pass-by-reference parameters
implicit typing
instantiation
iterator blocks
restrictions on var
traditional postcondition testing
locking, 2nd, 3rd, 4th, 5th
field-like events
log files, 2nd
Log, DataContext
logging, 2nd, 3rd
configuration
fake LINQ provider
logic
nullable Booleans
represented in expression trees
logical AND operator
logical negation operator
logically related conditions
combining in where clauses
LongCount
loops, captured variables, 2nd
l-values
macros
magic value pattern, 2nd, 3rd
magic variables
Main method, snippets
mainstream languages
maintainability, 2nd, 3rd, 4th, 5th
maintenance, 2nd
cost of multiple configurations
MakeGenericType
malformed contracts
managed code
Managed Extensibility Framework
Mandelbrot
mapping, LINQ to SQL
MARS
marshalling, 2nd
master pages
matching
Math
mathematical code
Max
SortedSet<T>
maybe, nullable logic
MD5
meaning, clarifying arguments
mechanisms, iteration
media player
MEF
Meier, Sid
member invocation
member resolution
members, obtaining without reflection
memory
cost of JIT compilation
generics
limit on buffering operations
overhead of extra methods
overhead of objects
representation of null
memory fragmentation
memory leaks
MemoryStream, 2nd
messages, contract failures
metadata, 2nd
contracts
DynamicAttribute
LINQ to SQL
metaobjects, 2nd, 3rd
metaprogramming
MetaRumpelstiltskin
method arguments
compared with type arguments
role in type inference
method calls, specifying arrays as arguments
method group conversions, 2nd
ambiguity
breaking changes
method groups, 2nd
complexities in overloading
dynamic code
method invocation, ExpandoObject
method parameters, compared with type parameters
method signatures
MethodInfo, 2nd, 3rd, 4th
compiler shortcut
MethodInvoker, 2nd
methods
compatibility with delegate types
delegate compatibility
generated by anonymous methods
meaning of return statements
using results with var
virtual dispatch
metrics
Meyer, Bertrand
Micro Framework, 2nd
micro-optimization
Microsoft, 2nd, 3rd, 4th, 5th, 6th
anonymous type implementation
CCR and DSS Toolkit
choices around exceptions
event pattern guidelines
pragma directives
Reactive Extensions
Robotics Studio
Microsoft.Office.Interop.Excel
migrating, to use extension methods
Min
SortedSet<T>
MinValue
miscellaneous utility library
MiscUtil, 2nd, 3rd
misinformation
missing data
misuse of helper classes
ML
mocking, 2nd
model databases
modifiers
extension methods
out and ref with named arguments
monads
Mondrian
monitors, locking changes in C# 4
Mono, 2nd, 3rd, 4th, 5th, 6th
MonoTouch
Monty Python
Moonlight
MoreLINQ, 2nd
MouseEventArgs
MouseEventHandler
MoveNext, 2nd, 3rd, 4th, 5th
msbuild
mscorlib
MSDN, 2nd, 3rd
expression tree documentation
multicast delegates, generic variance
MulticastDelegate
multiple active result sets
multiple criteria, sorting
multiple dispatch
multiple from clauses
multiple orderings, in one orderby clause
multiple query continuations
multiple type parameters variance
multitargeting
mutability, 2nd, 3rd, 4th
collections, 2nd
encouraged by C# 3
GetViewBetween
method call chaining
mutated state, postconditions
myths, value types and reference types
name/value pairs
named arguments, 2nd, 3rd, 4th
evaluation order
in tandem with optional parameters
to resolve overload ambiguity
named indexers, 2nd
design decisions
namespace alias qualifier
namespace aliases, 2nd
namespaces
extension methods, 2nd
LINQ to XML
naming, 2nd, 3rd
avoiding collisions
collisions, 2nd
compile-time duck typing
extension methods, 2nd
generic reflection methods
lambda expression parameters
overloading and dynamic typing
parameters
readability benefit of object initializers
scope in the real world
variables used in contracts
naming conventions
class contracts
extension methods
lambda expression parameters
ObjectInvariant
type parameters, 2nd
NaN.
See not a number.
native code, 2nd, 3rd, 4th
generics
natural language, fluent interfaces
nested classes
nested subscriptions, LINQ to Rx
nested types, 2nd
generics
in snippets
interfaces
nested variance
NetworkStream
new keyword, object initializers
new style contracts
Ng, Sam
NGen
Noda Time
Nodes
nodes
LINQ to XML
of expression trees
NodeType property, expression trees
none, Code Contracts retention option
nongeneric classes, requirement for extension methods
nongeneric helper classes
non-nested classes, requirement for extension methods
non-null obligations
non-nullable fields, generating inner joins
non-nullable reference types, 2nd
non-pointer types
nonrepeatable sequences
nonvirtual calls, instance method calls on null references
nonvoid return types, lambda expressions
no-op select clauses
not a number
notation, transparent identifiers
notes
NotificationSubscription, sample data model
NULL
database fields
SQL
null, 2nd, 3rd, 4th, 5th
as a typeless expression
comparisons with generic values, 2nd
default parameter values
extension methods
ignored in LINQ to XML construction
language support for Nullable<T>
magic value for optional parameters
meaning of
meaning when combining delegates
nullable value types
parameter passing
reference type constraints
results of CompareTo(null)
null coalescing operator, 2nd
used in comparisons
null literal
null references
boxing Nullable
extension methods
null values
Hashtable
Nullable class, 2nd
nullable fields, generating outer joins
nullable types
lifted conversions
meaning in the C# specification
nullable value types, 2nd, 3rd
compared with “nullable type”
conversions in LINQ to XML
generic comparisons
optional parameters
underlying type
Nullable<T>
boxing
constructors
conversions
default constructor, 2nd
Equals method
explicit conversions, 2nd
GetHashCode method
GetValueOrDefault method
HasValue property, 2nd
implicit conversions, 2nd
null value
operators
ToString method
unboxing
Value property
nullity
nullity check, events
NullReferenceException, 2nd, 3rd, 4th, 5th
unboxing
numbers, LINQ to XML content
object
immediate base of helper classes
LINQ to XML construction pattern
use before generics
object initializers, 2nd, 3rd
encouraging mutability
object model, Office
Object Relational Mapping
ObjectInvariant, conventions
object-oriented code
object-oriented data models, inner joins
object-oriented programming
object-relational mapping
objects
distinguishing from references
role in parameter passing
Observable<T>
ObservableCollection<T>
observables, hot and cold
observers
off-by-one errors
Office, 2nd, 3rd
office suite
OfType, 2nd, 3rd
OldValue
on, contextual keyword
OnCompleted
one-to-one correspondence, group joins
OnException
OnNext
on-the-fly reconfiguration
open constructed types, reflection with generics
open source
DLR
libraries
open types
generics
OpenText, 2nd
operand types, operators or nullable types
operator constraints
operators, 2nd.
See also Nullable, operators.
default value expression
generics
Nullable<T>
overloaded terminology
provided by languages for nullable types
purity
static classes
type constraints
optimization, 2nd, 3rd
LINQ operators, 2nd, 3rd, 4th, 5th
optional parameters, 2nd, 3rd
declaring
in tandem with named arguments
optional values
order of evaluation, null coalescing operator
order of execution, multicast delegates
OrderBy, 2nd, 3rd, 4th, 5th
OrderByDescending, 2nd, 3rd
OrderedParallelQuery
ordering, 2nd
arguments and parameters
dictionaries
importance in anonymous types
initialization
Parallel LINQ
OrdinalIgnoreCase
ORM.
See Object Relational Mapping.
out modifier, covariance
out of process queries, 2nd
out parameters
forbidden in partial methods
inability to capture
lambda expressions
named arguments
postconditions
prohibited in iterator blocks
restrictions on extension methods
restrictions on generic variance
restrictions on optional parameters
OutAttribute
outer joins
LINQ to SQL
outer sequence
outer variables
output parameters, 2nd
TryXXX pattern
output positions
covariance
out parameters
Output window, warning numbers
overengineering
overflows
overhead, memory used by objects
Overlaps
overload resolution, 2nd, 3rd, 4th, 5th
breaking changes due to generic variance
extension methods
generic types
generics
lambda expressions and dynamic typing
named arguments and optional parameters
summary of changes in C# 3
overloaded operators, nullable types
overloading, 2nd
alternative to optional parameters
changes in C# 3
complicated by inheritance
custom LINQ operators
dynamic arguments
Func delegate types
GroupBy
method group conversions
method groups
query expressions and dot notation
single and multiple dispatch
overloads, Execute and CreateQuery
overriding, 2nd, 3rd
partial types
return type covariance
ownership
P/Invoke, 2nd
pain points
Pair<T1,T2>
Parallel Extensions, 2nd, 3rd, 4th, 5th
Parallel LINQ
ParallelEnumerable
parallelism, 2nd, 3rd
ParallelQuery
parameter array
optional parameters
parameter expressions
appearance in visualizer
parameter list
parameter names
from range variables
importance of names
parameter passing
parameter type contravariance
parameter types
anonymous methods
conversion from argument types
delegates
parameter wildcarding
ParameterExpression
parameterized properties
ParameterizedThreadStart, 2nd, 3rd
parameterless constructors, 2nd, 3rd
default parameter values
generic type constraints
parameters
anonymous methods
binding in expression trees
captured by anonymous methods
comparing type and method parameters
contravariance
contravariance in delegates
documentation
dynamic
dynamic type
implicit typing in lambda expressions
initializing arrays
Invoke method on a delegate type
iterator blocks
lambda expressions with a single parameter
listing explicitly in lambdas
optional
readability
required for extension methods
terminology
type inference
using lambda expressions for logging
ParamName
params
optional parameters
parent nodes, LINQ to XML content
parentheses
constructor calls
query expressions and dot notation
removing from lambda expressions
parser
partial methods, 2nd
partial types
initialization
LINQ to SQL
restrictions
partial variance
partial, contextual keyword
PartialComparer
partitioning operators
pass by reference
pathological cases
pattern matching
patterns, 2nd, 3rd
iterator
language support
nullability
pausing execution, iterator blocks
pdb files
Peek
Queue<T>
Stack<T>
perfection
performance, 2nd, 3rd
as operator with nullable value types
boxing
Code Contracts, 2nd
cost of JIT compilation
dynamic typing, 2nd
generic comparisons with null
generics, 2nd, 3rd
Java generics
LINQ, 2nd, 3rd
of value and reference types
TryXXX pattern
performance characteristics
permissions
perspectives, viewing types and objects
Pex
phases, type inference
PIA.
See Primary Interop Assemblies.
pinning
pipelines
LINQ
piping data
placeholders
Result
type parameters
planning, generic variance
platform designers
PLINQ
Point structures, mutability
pointer types, restrictions on extension methods
pointers, 2nd, 3rd
polymorphism, 2nd
Pop
portability
position, iterators
postconditions, 2nd
inherited contracts
Power Collections
power, language design choices
practices
pragma directives
checksum
warnings
pragmatism
pre and post, Code Contracts retention option
precompilation, ASP.NET
preconditions, 2nd
Code Contracts retention option
contract reference assemblies
inherited contracts
suggested by static checker
variations in meaning
predefined conversions
predefined operators
Predicate
purity
predicates, 2nd, 3rd, 4th
predictability
prefix, convention for type parameter names
preprocessing directives
preprocessing, query expressions
preprocessor symbols, 2nd
Code Contracts
primary constraints
Primary Interop Assemblies, 2nd, 3rd
primary keys
primary orderings
primitive types
private
access modifier
partial methods
private accessibility, from nested types
private constructors, helper methods
private fields
private members, access from nested types
processing models, buffering versus streaming
ProcessStartInfo
producer/consumer pattern
production assemblies
productivity, 2nd, 3rd
profiles
program verifier, Spec#
project files
editing for dependencies
project management
projection initializers
projection operators
projections, 2nd, 3rd
grouping
LINQ to Rx
sorting
Projects, sample data model
promises
promotion, addition operands
pronunciation
generics
lambda expressions
properties, 2nd
access modifiers
anonymous types
automatically implemented
default
ExpandoObject
getter / setter access
mutability
navigation in object-oriented models
projection initializers
purity
setting subproperties with object initializers
setting with object initializers
property descriptors
property names, anonymous types
protected access, prohibited in static classes
protected methods
Protocol Buffers
provider pattern
proxying, COM
public domain
public interface, unit testing
public keys, friend assemblies
public methods, invariants
publish/subscribe pattern
pull model, LINQ to Objects
pure methods
PureAttribute
purity
Push
push model, LINQ to Rx
Python, 2nd, 3rd, 4th
quantifier operators
queries
LINQ to SQL
LINQ to XML
observables
parallelizing
query continuations, 2nd
multiple
query expression pattern, 2nd
query expressions, 2nd, 3rd, 4th, 5th, 6th
compared to dot notation, 2nd
consistency between LINQ providers
continuation translations
degenerate queries
dynamic code
explicitly typed range variables
order of clauses
select clauses
translation, 2nd, 3rd, 4th
type inference example
query optimizer
Queryable, 2nd, 3rd
querying
QueryProvider, property of IQueryable
Queue<T>
Rahien, Ayende
random numbers, 2nd
Random, using carefully
Range, 2nd
Excel
LINQ to Rx
ParallelEnumerable
range variables, 2nd
combined with transparent identifiers
explicit typing
scope with query continuations
Range<T>
raw types (Java)
reachability
Reactive Extensions, 2nd, 3rd, 4th, 5th
readability, 2nd, 3rd, 4th, 5th
argument reordering
captured variables
consistency
declarative code
extension method naming
extra methods for delegates
generics
implicit typing, 2nd
iterator blocks
LINQ, 2nd, 3rd, 4th, 5th
LINQ to XML namespace support
measuring objectively
method group conversions
multiple where clauses
named arguments, 2nd
naming
nullable types
query expressions and dot notation
single exit point
transparent identifiers
using Word before C# 4
ReadAllLines, 2nd
ReadAllText
ReaderWriterLockSlim
read-evaluate-print loop
ReadFully
reading from streams
ReadLine
read-only fields, anonymous types
read-only properties, 2nd
anonymous types
ReadOnlyCollection
ReadOnlyCollection<T>, 2nd
ReadOnlyObservableCollection<T>
receivers
recompilation, 2nd
const and default values
reconfiguration, on the fly
rectangular arrays, 2nd
recursion
guard in Code Contracts
LINQ to XML construction
red-black trees
redeployment
redirecting
redistribution
redundant computations
ref parameters
CLR support
COM
inability to capture
invariance
lambda expressions
named arguments
postconditions
prohibited in iterator blocks
restrictions on extension methods
restrictions on optional parameters
refactoring, 2nd, 3rd, 4th, 5th
reference conversions, 2nd, 3rd
generic variance, 2nd
reference type constraints, 2nd
avoiding boxing
reference types, 2nd, 3rd
array covariance
null coalescing operator
nullability
type arguments and generic variance
wrapper for nullable value types
references
memory size
navigation in object-oriented models
referencing, Primary Interop Assemblies
reflection, 2nd, 3rd
generics, 2nd
invoking methods
obtaining a MethodInfo, 2nd
operators and expression trees
retrieving generic method definitions
side-stepping with dynamic typing, 2nd, 3rd
Reflector, 2nd, 3rd, 4th, 5th, 6th
reformatting
refreshingly minty code
regions
register optimizations
regular expressions
relational data models, inner joins
relational operators
release builds, 2nd
assertions
release requires, Code Contracts retention option
releasing resources, foreach
Remove, 2nd, 3rd
RemoveAt
RemoveFirst
RemoveItem
RemoveLast
RemoveWhere
removing delegates
Repeat
repetitive code
REPL, 2nd
Replace
required parameters
requirements
Requires, 2nd
research
Reset
resolution, dynamic calls
resource acquisition, timing in iterators
resource management, iterators
resources, released after iterating
responding dynamically
Response.Redirect
RESTful services
restoring warnings
restrictions
default parameter values
documenting
dynamic code
generic variance
implicitly typed local variables
nullable type operators
optional parameters
partial types
Result
return statements
implicit return types
lambda expressions
prohibited in iterator blocks
return types
anonymous methods
compatibility with delegate types
compatibility, covariance of delegates in C# 2
covariance, 2nd
covariance in delegates
delegates
dynamic
Func and Action
implementing IDynamicMetaObjectProvider
inferred from anonymous functions
lambda expressions
of Invoke method on a delegate type
overloading
return values
covariance
indicators of success
postconditions
return, anonymous methods
ReturnType
reuse, native code from JIT compilation
Reverse, 2nd, 3rd, 4th
missing from LINQ to Rx
SortedSet
reversing strings
rewriting, Code Contracts
right associativity, null coalescing operators
right sequence
robustness, 2nd
aided by generics
dynamic typing
LINQ to XML queries
static checking
root element, LINQ to XML
Root property, XDocument
RouteValueDictionary
rows, joins
RPCs
RSS
Ruby, 2nd
rules
C# 2 type inference
DLR
dynamic typing
rules engines
Rumpelstiltskin
runtime, 2nd
behavior of casting
RuntimeBinderException
3.148.103.210