Keith Wagner

What I Learned: C# Aliases

One of the neat features .NET 8 & C# 12 brought is the ability to alias types.

I had heard about this briefly in the road leading up to .NET 8’s release back in November but had quickly forgotten about it. Recently I found my first use for them.

The use I found for them was basically to make a tuple a little easier to use.

var (latitude, longitude) = await GetGeolocationAsync();

private async Task<(decimal latitude, decimal longitude)> GetGeolocationAsync()
{
	...
}

becomes

using Geolocation = (decimal latitude, decimal longitude);

var geolocation = await GetGeolocationAsync();

private async Task<Geolocation> GetGeolocationAsync()
{
	...
}

For objects and types used throughout your application, it makes more sense to create actual classes for these types. But for tuples used within a class, it just provides a quick and easy way to define them without having to type all them out.