.net

Covariance and Contravariance in C#

Covariance and Contravariance in C# explained with examples


Read more...


Closures explained

What is a closure, and how does it work?


Read more...


Private variables prefixed with underscore?

Why is the convention that private variables should start with an underscore?


Read more...


Enum validity with IsDefined

Check the validity of an enum with with the IsDefined method


Read more...


Evolution of multi case switch statements

Various ways of handling multiple case switch expressions in C#


Read more...


Duck typing in C#

What is duck typing and how does it work in C#?


Read more...


Lazy loading objects with Lazy<>

Defer the loading of large objects until require with Lazy<>


Read more...


Customize debugger class display

Customize how classes are displayed when debugger


Read more...


Dependency Injection with Func and delegates

Injecting a Func or Delegate using dependency injection


Read more...


Incremental source generators

Generate code, to be used in code, to generate additional code


Read more...


c# (255) .net (255) entityframework (20) ef (17) attribute (13) .net7 (12) sql (10) array (9) performance (9) string (9) roslyn (8) efcore (8) visualstudio (8) dictionary (7) task (7) linq (7) exception (6) list (6) api (6) entity framework (6) tuple (5) constructor (5) enum (5) iteration (5) DI (5) dependencyinjection (5) switch (5) minimalapi (5) ienumerable (5) codefix (5) code fix (5) analyser (5) analyzer (5) guide (5) analyzer-series (5) sourcegenerator (4) async (4) lambda (4) cache (4) lazy (4) interpolation (4) json (4) property (4) C#11 (4) configuration (4) indexer (4) anonymous (4) interface (3) await (3) foreach (3) endpoint (3) collection (3) operator (3) middleware (3) filter (3) flags (3) parallel (3) entityframeworkcore (3) func (3) .net6 (3) efcore6 (3) logging (3) generics (2) delay (2) count (2) length (2) generic (2) conversion (2) cancellation (2) null (2) controller (2) attributes (2) .net8 (2) http (2) query (2) unsafe (2) loop (2) groupby (2) context (2) dynamic (2) distributed (2) datetime (2) delete (2) select (2) init (2) initialization (2) local (2) implicit (2) index (2) new (2) separator (2) jagged (2) querystring (2) pooling (2) sort (2) readonly (2) parameters (2) bulk (2) literals (2) minimal (2) sqlserver (2) nameof (2) disposable (2) idisposable (2) global (2) parameter (2) patternmatching (2) schedule (2) contenttype (2) unittest (2) dbcontext (2) vs (2) database (2) tsql (2) guid (2) action (2) debugging (2) enumeration (2) static (2) goto (2) private (2) concurrentdictionary (2) lock (2) function (2) with (2) syntax (2) methods (2) invoke (2) injection (2) dependency (2) generator (2) extend (2) using (2) github (2) toolkit (1) sourcegeneratortoolkit (1) extensionmethod (1) extension (1) wrapup (1) unmapped (1) arraypool (1) expressionbody (1) comparer (1) ignorecase (1) methodgroup (1) accuracy (1) any (1) all (1) elide (1) name (1) linkgenerator (1) iparseable (1) bind (1) sql2022 (1) distinct (1) mvc (1) startup (1) distinctby (1) stopwatch (1) benchmark (1) converter (1) helpers (1) convention (1) holliday (1) break (1) frozen (1) httpmethod (1) tag (1) ef7 (1) unreachable (1) bytes (1) memory (1) allocated (1) parseable (1) warning (1) compiler (1) featureflag (1) short (1) nullcoalescing (1) associativity (1) preview (1) distributedcache (1) months (1) convert (1) localfunction (1) pattern (1) builder (1) compare (1) comparison (1) add (1) addrange (1) localization (1) targettype (1) capacity (1) record (1) primitive (1) path (1) coalesce (1) lookup (1) tolookup (1) swagger (1) xml (1) documentation (1) filemodifier (1) dataprotector (1) protect (1) math (1) headers (1) binding (1) deserialization (1) utf8jsonreader (1) memorycache (1) statistics (1) newtonsoft (1) jsonconvert (1) datetimeoffset (1) object (1) objectpool (1) httpstatus (1) statuscode (1) type (1) format (1) app (1) run (1) map (1) server (1) addresses (1) features (1) token (1) aot (1) aheadoftime (1) typed (1) stronglytyped (1) expando (1) propertychanged (1) update (1) startupfilter (1) istartupfilter (1) commandline (1) mapping (1) switchmappping (1) taskcompletionsource (1) handler (1) C11 (1) stringliterals (1) lifetime (1) applicationlifetime (1) yield (1) iasyncenumerble (1) struct (1) defaults (1) correlation (1) activity (1) default (1) waitfor (1) formatting (1) outputcache (1) ping (1) ratelimiter (1) ratelimiting (1) iqueryable (1) namespace (1) out (1) delimit (1) arraysegment (1) routehandler (1) virtual (1) polymorphism (1) cast (1) typeof (1) bit (1) enumerable (1) redis (1) messaging (1) pubsub (1) keywords (1) options (1) create (1) interop (1) os (1) over (1) blog (1) hashicorp (1) vault (1) beginner (1) timer (1) interval (1) alignment (1) activatorutilities (1) in (1) modifier (1) deconstruct (1) host (1) required (1) iconfiguration (1) wildcard (1) equality (1) equals (1) testing (1) protected (1) maybenullwhen (1) initializer (1) lowing (1) forloop (1) typeconversion (1) debug (1) config (1) pagination (1) keyset (1) for (1) css (1) html (1) destruct (1) currying (1) layout (1) expandobject (1) tryaddenumerable (1) binary (1) hexadecimal (1) newid (1) nullable (1) chaining (1) xmlcomments (1) collections (1) insert (1) aspnetcore (1) route (1) first (1) single (1) merge (1) snippet (1) temporary (1) files (1) inference (1) integers (1) biginteger (1) selection (1) checked (1) unchecked (1) overflow (1) deterministic (1) directives (1) breakpoint (1) exceptiondispatchinfo (1) failfast (1) finally (1) sealed (1) throw (1) expressions (1) queryfilter (1) interning (1) linebreak (1) coalescing (1) main (1) execution (1) accessing (1) partitioner (1) listpattern (1) slicepattern (1) thread (1) readerwriter (1) atomic (1) interlocked (1) linkedlist (1) conditional (1) numeric (1) check (1) is (1) covariance (1) contravariance (1) offset (1) fetch (1) closure (1) method (1) underscore (1) validity (1) expression (1) switchexpression (1) ducktyping (1) loading (1) debugger (1) display (1) debuggerdisplay (1) tostring (1) delegate (1) incremental (1) incrementalgenerator (1) getenumerator (1) optional (1) system.text.json (1) notifications (1) column (1) order (1) columnorder (1) interceptor (1) interceptors (1) entitytypeconfiguration (1) gc (1) garbagecollection (1) garbage (1) wait (1) directive (1) when (1) metadata (1) call stack (1) channel (1) queue (1) producer (1) consumer (1) deploy (1) scheduler (1) cron (1) valuetuple (1) dailydrop (1) ioptions (1) ioptionssnapshot (1) ioptionsmonitor (1) optionspattern (1) records (1) ILogger (1) structuredlogging (1) serilog (1) structured (1) logger (1) git (1) gitflow (1) githubflow (1) workflow (1) azuredevops (1) nuget (1) devops (1) package (1) symbol (1) symbolserver (1) sourcelink (1) dbset (1) dependency injection (1) rollcall (1) transient (1) singleton (1) scoped (1) multiple implementation (1) implementation (1) multiple (1) ide (1) productivity (1)