https://msdn.microsoft.com/en-us/library/51y09td4.aspx
In C#, the new keyword can be used as an operator, a modifier, or a constraint.
- new Operator
-
Used to create objects and invoke constructors.
- new Modifier
-
Used to hide an inherited member from a base class member.
- new Constraint
-
Used to restrict types that might be used as arguments for a type parameter in a generic declaration.