Does it make sense to create my own IEnumerable<T> interface with the #DefaultInterfaceMember IEnumerable.GetEnumerator() in it? It saves me to write this method myself in each class which implements the original IEnumerable<T> interface.
#dotnet#charp#csharp8
Span is a C# 8 feature that allows improving the performance of C# code almost with no effort and without sacrificing its readability. In this episode of MVP Show, @BohdanStupak1 talks more about it.
Archived Video: bit.ly/3ACRLQ9#CSharpCorner#MVPShow#CSharp8#Span
so, if you use `Foo : IAsyncDisposable` using variable in C# 8.0 there is no way to `.ConfigureAwait()` it's `.DisposeAsync()` call and still being able to use the `Foo` API? :/ #csharp8sharplab.io/#v2:EYLgtghglgdg…
Spent the day writing custom logging into a complex Windows service then jumped back into writing more C# 8 and C# 9 code samples. Writing code samples is an excellent way to learn and share.
#csharp#csharp8#csharp9
Little known C# 8 fact. There are lifted forms of the index from end (^) and range (..) operators i.e. you can apply them to nullable values:
```
void M(int? x, char? c)
{
System.Index? i = ^x;
System.Range? r = ^c..i;
}
```
#csharp8#dotnet