<< Operator (C# Reference)
The left-shift operator (<<) shifts its first operand left by the number of bits specified by its second operand. The type of the second operand must be an int.
The high-order bits of first operand are discarded and the low-order empty bits are zero-filled. Shift operations never cause overflows.
User-defined types can overload the << operator (see operator); the type of the first operand must be the user-defined type, and the type of the second operand must be int. When a binary operator is overloaded, the corresponding assignment operator, if any, is also implicitly overloaded.