In C#, the new keyword can be used as an operator, a modifier, or a constraint.
Used to create objects and invoke constructors.
Used to hide an inherited member from a base class member.
Used to restrict types that might be used as arguments for a type parameter in a generic declaration.