100 Must Know Tips to Write Better C#
About
No channel description available.
Latest Posts
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
You May Also Like
Boost Your C# Skills Today
AI-recommended products based on this video

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

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)

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

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

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



















