The new operator

The new operator is used to create new instances of types.
There are three forms of new expressions: Object creation expressions are used to create new instances of class types and value types. Array creation expressions are used to create new instances of array types. Delegate creation expressions are used to create new instances of delegate types.
The new operator implies creation of an instance of a type, but does not necessarily imply dynamic allocation of memory. In particular, instances of value types require no additional memory beyond the variables in which they reside, and no dynamic allocations occur when new is used to create instances of value types.