2023-03-21 csharp C# 11 – Generic attributes Learn how to define and use generic attributes in C# 11, including restrictions on type arguments and common error messages.
2023-03-18 csharp C# 11 – file access modifier & file-scoped types Learn how the C# 11 file access modifier restricts a type's scope to the file in which it is declared, helping avoid name collisions with source generators.
2023-03-17 csharp C# 11 – Interpolated raw string literal Learn how to use interpolated raw string literals in C# 11, including escaping braces, multiple $ characters, and conditional operators.
2023-03-15 csharp C# 11 raw string literals (triple-quote syntax) Use C# 11 raw string literals (triple-quote `"""` syntax) to embed whitespace, newlines, and quotes without escape sequences. Rules and examples.
2023-03-14 csharp How to switch to C# 11 Fix the 'Feature is not available in C# 10.0' error by switching to C# 11 via target framework or LangVersion in your .csproj file.
2023-03-11 csharp C# throw if null: ArgumentNullException.ThrowIfNull (.NET 6+) Use ArgumentNullException.ThrowIfNull in .NET 6+ for concise null checks, or use throw expressions in C# 7+ for older frameworks.
2020-11-20 csharp Get Embedded Resource Stream in .NET Core Learn how to retrieve an embedded resource stream in .NET Core by understanding how resource names are composed and using GetManifestResourceStream.
2020-11-13 csharpxamarin-forms How to use appsettings.json with Xamarin.Forms Learn how to use appsettings.json configuration files with Xamarin.Forms by embedding the file as a resource and building an IConfiguration object.
2020-11-04 csharpsignalrxamarin-forms How to publicly expose your local SignalR service for consumption by mobile clients using ngrok Use ngrok to publicly expose your local SignalR service so mobile clients can connect without network configuration or SSL workarounds.
2020-05-01 csharp C# using var (using declaration) Use C# 8 `using var` declarations to dispose IDisposable objects without nested braces. Syntax, scope rules, and when to prefer `using` blocks instead.