The object Type

In the .NET Framework, all types are derived from System.Object.  In C#, the object keyword is a synonym for this same type.  System.Object is the base class for all other types in .NET, including built-in types and custom types.
In C#, all types can be upcast to object.
1
2
3
4
5
6
7
8
string msg = "A string";
int n = 42;
Person me = new Person("Sean", 46);
 
// Can assign anything to an object variable
object o = msg;
o = n;
o = me;
Any class that you create in C# is automatically derived from object.
The object type defines the following instance methods:
  • bool Equals(object)
  • void Finalize()
  • int GetHashCode()
  • Type GetType()
  • object MemberwiseClone()
  • string ToString()
The object type defines the following static methods:
  • bool Equals(object, object)
  • bool ReferenceEquals(object, object)
This means that every new class automatically inherits these methods.


1
2
3
Person me = new Person("Sean", 46);
int hash = me.GetHashCode();