100 Must Know Tips to Write Better C#

Nick Chapsas June 25, 2025
Video Thumbnail

About

No channel description available.

Video Description

Get 30% off everything on Dometrain: https://dometrain.com/courses/?ref=nick-chapsas&promo=youtube&coupon_code=SUMMER30 Subscribe to my weekly newsletter: https://nickchapsas.com Hello, everybody. I'm Nick, and in this video, I will show you 100 .NET Tips that I have already taught in the form of YouTube Shorts, for everyone to enjoy in a single long video. Workshops: https://bit.ly/nickworkshops Don't forget to comment, like and subscribe :) Timestamps 00:00 Intro 00:35 Tip 1: Array.Empty 01:23 Tip 2: Are you rethrowing exceptions correctly 02:15 Tip 3: Make your async code thread safe 03:11 Tip 4: Linq performance Trap 04:01 Tip 5: Write C# in your terminal 04:41 Tip 6: Fastest way to work with lists 05:22 Tip 7: Biggest Lie about the .Net Logger 06:07 Tip 8: Empty Types in C#9 06:38 Tip 9: ToList vs ToArray 07:19 Tip 10: Assembly Markers are Awesome 08:00 Tip 11: StringSyntax Attribute 08:30 Tip 12: C#12 Primary Constructors 09:04 Tip 13: UUIDv7 and why it's better than UUIDv4 09:47 Tip 14: The smallest valid C# program (and what it means) 10:16 Tip 15: CancellationToken best practices 10:53 Tip 16: Collection initialisers and new syntax 11:17 Tip 17: Checking your .NET project with `dotnet-outdated` 11:48 Tip 18: Generating nonsense with a waffle generator 12:30 Tip 19: Run and UseMap for one-line top-level logic 12:55 Tip 20: The Big List of Naughty Strings in C# 13:30 Tip 21: Parsing with interpolated strings 14:12 Tip 22: Using type aliases for `Any T `-like behavior 14:44 Tip 23: DateTimeOffset: why you probably want it 15:25 Tip 24: Architecture testing with NetArchTest 15:59 Tip 25: Alternatives to FluentAssertions 16:38 Tip 26: Exporting C# types as JSON Schema 17:08 Tip 27: For/await loops over IAsyncEnumerable 17:39 Tip 28: .NET Retest for test impact analysis 18:11 Tip 29: The `params` keyword demystified 18:36 Tip 30: Why `Monitor.Enter` can troll you 19:14 Tip 31: Private fields and the underscore naming convention 19:43 Tip 32: HttpClientFactory explained in 2 minutes 20:20 Tip 33: Snapshot testing in C# with Verify 20:54 Tip 34: Intro to Refit: type-safe REST clients 21:22 Tip 35: Avoiding thread limits with SemaphoreSlim 22:03 Tip 36: ULIDs: lexicographically sortable unique IDs 22:39 Tip 37: Better parallelisation with Task.WhenAll 23:18 Tip 38: Using `IServiceScopeFactory` for scoped resolution 23:56 Tip 39: Issues with primary constructors in large projects 24:34 Tip 40: Using UnitsNet for unit-safe calculations 25:02 Tip 41: Detecting missing `services.ValidateScopes()` 25:31 Tip 42: Null-coalescing assignment `??=` in depth 26:02 Tip 43: Initialising dictionaries: concise methods 26:44 Tip 44: class vs record vs primary constructor 27:18 Tip 45: ref structs: when and why 27:58 Tip 46: in parameters explained 28:35 Tip 47: Deferred execution with LINQ: a quick demo 29:06 Tip 48: `stackalloc` for fast allocation on the stack 29:50 Tip 49: Built-in delegates like Action, Func, Predicate 30:42 Tip 50: Base class method overrides and visibility 31:28 Tip 51: Renting arrays with ArrayPool.Shared 32:10 Tip 52: `async void`: why it’s dangerous 32:40 Tip 53: The null-forgiving operator `!` in C# 33:14 Tip 54: `using` keyword corner cases 33:58 Tip 55: Object cloning with the `with` keyword 34:36 Tip 56: Extension methods best practices 35:13 Tip 57: Collection expressions in C# 12 35:41 Tip 58: Passing `Span T` with `params`-like syntax 36:05 Tip 59: Target-typed `new()` and when it helps 36:24 Tip 60: Top-level statements cleaned up 36:55 Tip 61: Pattern matching with logical operators 37:21 Tip 62: `nameof` usage patterns 37:45 Tip 63: Writing custom deconstructors 38:07 Tip 64: Lambda attributes and metadata 38:31 Tip 65: Advanced pattern matching techniques 38:54 Tip 66: `ThrowIfNull` and guard clauses 39:22 Tip 67: Expression-bodied constructors 39:45 Tip 68: Working with `ValueTuple` 40:14 Tip 69: Tip 69 40:50 Tip 70: `ref` vs `in` parameters in method signatures 41:24 Tip 71: Comparing tuples for equality 41:45 Tip 72: Using CallerMemberName/LineNumber/FilePath attributes 42:23 Tip 73: Lesser known attribute tricks in .NET 42:57 Tip 74: Should you use `var`? 43:34 Tip 75: The good and bad of `dynamic` 44:24 Tip 76: Exceptional exception handling techniques 44:55 Tip 77: Async void in test methods 45:26 Tip 78: #region is (probably) a code smell 46:06 Tip 79: Proper use of the `[Obsolete]` attribute 46:35 Tip 80: The future of .NET (v2) 47:02 Tip 81: Global usings in .NET 6+ 47:21 Tip 82: `nameof` again? Yes, but different context 47:44 Tip 83: `InternalsVisibleTo` and its pitfalls 48:11 Tip 84: User-filtered exception handling 48:27 Tip 85: New `when not null` pattern 49:01 Tip 86: What `scoped` really means 49:27 Tip 87: Finalizers in modern .NET 49:57 Rest: Character length exceeded Social Media: Follow me on GitHub: https://github.com/Elfocrash Follow me on Twitter: https://twitter.com/nickchapsas Connect on LinkedIn: https://www.linkedin.com/in/nick-chapsas #csharp #dotnet

Boost Your C# Skills Today

AI-recommended products based on this video

Loading...
30 Pack Multicolor Pen in One Easter Party Favors 6-in-1 Fun Pens 6 Colors Cute Pens Easter Classroom Gifts Retractable Ballpoint Pen for Birthday Gifts, Student Rewards, Class Prizes

30 Pack Multicolor Pen in One Easter Party Favors 6-in-1 Fun Pens 6 Colors Cute Pens Easter Classroom Gifts Retractable Ballpoint Pen for Birthday Gifts, Student Rewards, Class Prizes

(21)
$25.99
FREE delivery Mon, Feb 16 on your first order
Loading...
Zhanmai Open When Envelopes for College Student, Going Away to College Gifts University Gift Card Book, High School Care Package, Birthday Cash Card Holder for Daughter Son Friends Gift(Pastel)

Zhanmai Open When Envelopes for College Student, Going Away to College Gifts University Gift Card Book, High School Care Package, Birthday Cash Card Holder for Daughter Son Friends Gift(Pastel)

(150)
$37.72
FREE delivery Feb 17 - 19
Loading...
JDR Harmonica C, Blues armonica Key of C 10 Hole 20 Tone with Case Mouth Organ Standard Diatonic for Kids Beginner Adults Professional Player Teacher Parents Students Black New Year Gift
Best Seller

JDR Harmonica C, Blues armonica Key of C 10 Hole 20 Tone with Case Mouth Organ Standard Diatonic for Kids Beginner Adults Professional Player Teacher Parents Students Black New Year Gift

(1,384)
$17.88
FREE delivery Sat, Jun 14 on your first order
900+ bought in past month
Loading...
New Slim 65W USB C Laptop Charger for Lenovo ThinkPad Yoga 7i 7 9i 9 2-in-1 Yoga Book 9i Gen 10 ThinkBook 16 15 14 Gen 8/7 13s 13x 14s IdeaPad Slim/Pro 5X 5i 5 3X 3i 3 2-in-1 Type C Power Cord

New Slim 65W USB C Laptop Charger for Lenovo ThinkPad Yoga 7i 7 9i 9 2-in-1 Yoga Book 9i Gen 10 ThinkBook 16 15 14 Gen 8/7 13s 13x 14s IdeaPad Slim/Pro 5X 5i 5 3X 3i 3 2-in-1 Type C Power Cord

(13)
$24.99
FREE delivery Sat, Jun 21 on your first order
Loading...
Hand Warmers Rechargeable 2 Pack, UNBON Electric Hand Warmer Reusable USB C Handwarmers 3 Heat Settings Portable Pocket Heater for Outdoor Sports Raynauds Warm Gifts for Women Men Kids

Hand Warmers Rechargeable 2 Pack, UNBON Electric Hand Warmer Reusable USB C Handwarmers 3 Heat Settings Portable Pocket Heater for Outdoor Sports Raynauds Warm Gifts for Women Men Kids

(90)
$12.99
FREE delivery Sat, Jun 14 on your first order
Loading...
135W USB C AC Adapter Charger for Lenovo ThinkPad Z16 P16s P15s P14s E16 E15 E14 T16 Yoga/Slim Pro 9 7 6 7i 9i Book 9 ThinkBook 16 14p 14 15 14s IdeaPad Slim/Pro 9 7 5 Legion 9 Laptop ADL135YSDC3A

135W USB C AC Adapter Charger for Lenovo ThinkPad Z16 P16s P15s P14s E16 E15 E14 T16 Yoga/Slim Pro 9 7 6 7i 9i Book 9 ThinkBook 16 14p 14 15 14s IdeaPad Slim/Pro 9 7 5 Legion 9 Laptop ADL135YSDC3A

(1)
$59.99
FREE delivery Sun, Jun 22