In this tutorial, explain how to annotate a generic class, and a set of generic methods using the `notnull` constraints, and related attributes: - `AllowNull` - `DisallowNull` - `MaybeNull`, `MaybeNullWhen(bool)` - `NotNull`, `NotNullWhen(bool)` - `NotNullIfNotNull(string)`