Skip to content

Instantly share code, notes, and snippets.

View MelbourneDeveloper's full-sized avatar
🏠
Working from home

Christian Findlay MelbourneDeveloper

🏠
Working from home
View GitHub Profile
[ApiController]
[Route("[controller]")]
public class PersonController : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
var person = new Person
{
FirstName = "Sam",
@MelbourneDeveloper
MelbourneDeveloper / Program.cs
Created July 11, 2020 22:40
Get Member From Expression (RaisePropertyChanged)
class Program
{
static void Main(string[] args)
{
var memberExpression = GetMemberFromExpression(() => Test);
Console.WriteLine(memberExpression.Member.Name);
Console.ReadLine();
}
private static int Test => 10;
@MelbourneDeveloper
MelbourneDeveloper / Program.cs
Created August 16, 2020 02:53
Interfaces are passed by reference
class Program
{
static void Main(string[] args)
{
//If this is var, the result will be 0
IHasNumber hasNumber = new StructWithNumber { Number = 0 };
IncrementNumber(hasNumber);
Console.WriteLine(hasNumber.Number);
}
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Reactive.Subjects;
using System.Threading.Tasks;
namespace DecoupledMessaging
{
[TestClass]
public class UnitTest1
{
@MelbourneDeveloper
MelbourneDeveloper / ILoggerNullObject.cs
Created September 30, 2020 00:33
ILogger with Null Object Pattern
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using System;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
new Example().Print("Hello World!");
@MelbourneDeveloper
MelbourneDeveloper / ILoggerFactoryNullObject.cs
Created September 30, 2020 00:37
ILoggerFactory with Null Object Pattern
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
new Example().Print("Hello World!");
}
}
public class Example
@MelbourneDeveloper
MelbourneDeveloper / NullableLoggerFactory.cs
Created September 30, 2020 00:38
Nullable Logger Factory
public Example(ILoggerFactory? loggerFactory = null)
{
_loggerFactory = loggerFactory ?? NullLoggerFactory.Instance;
_logger = _loggerFactory.CreateLogger<Example>();
}
@MelbourneDeveloper
MelbourneDeveloper / NullObjectInheritance.cs
Created September 30, 2020 00:40
Inheritance with null objects
public abstract class BaseClass
{
protected ILogger Logger { get; }
protected BaseClass(ILogger logger)
{
Logger = logger;
}
}
public class ConcreteClass : BaseClass
{
@MelbourneDeveloper
MelbourneDeveloper / NullObjectLoggerScope.cs
Created September 30, 2020 00:41
BeginScope with null object pattern
public void Print(string message)
{
using (var logScope = _logger.BeginScope("Begin scope"))
{
_logger.LogTrace("Logged message: {message}", message);
Console.WriteLine(message);
}
}
public void Print(string message)
@MelbourneDeveloper
MelbourneDeveloper / GetFilteredStrings.cs
Created October 17, 2020 04:29
Get Filtered Strings with Predicate
public IList<string> GetFilteredStrings()
{
Func<string, bool> predicate = a => a.Length == 1;
return new List<string> { "321", "21", "1" }.Where(predicate).ToList();
}