The more I mess around with C# the more I like it.
The nice thing about .NET Core is that it really is cross platform. I can start writing something on my Linux box, continue on Mac and finish it on Windows and use the same editor along the way – VS Code.
One of the coolest parts of C#, at least for me, is the async part. It really is quite easy to make web or any other type of IO requests asynchronous.
But one thing I did not know until today was that as of C# 7.1 you can also make your Main()
method async.
When I started learning C# a while back I read that Main()
must return void
or int
, therefore it cannot be async as that would require returning T
or T<>
.
This can be a small issue when you write a CLI app and you want to call an async method from within your Main()
.
So what you’d normally do in such situation is that you’d use the awaiter like so:
static void Main (string[] args) { DisplayTempAsync().GetAwaiter().GetResult(); }
This will work, but it is not too pretty.
However as it turns out C# 7.1 now supports async Main()
methods and you can now write your code like so:
static async Task Main (string[] args) { await DisplayTempAsync(); }
This is way nicer, and in order for it to work you must specify C# 7.1 version in your csproj
file, like so:
Exe netcoreapp2.1 7.1
Though it’s worth sharing.