Факт дня про C# 11



Допустим, в проекте подключены nullable reference types.

Затем, объявляется некоторый класс с полем, у которого notnull ссылочный тип.

Чтобы не получить от компилятора warning CS8618, многие делают так:



public class Foo

{

public string Bar {get; set;} = null!;

}



В C# 11 появилось ключевое слово required, которое позволяет красиво обыграть эту ситуацию:



public class Foo

{

public required string Bar {get; set;}

}