Search notes:

System.Object (class)

The class from which every other class in the CLR system derives by default, either directly or indirectly. (The command line option -noautoinherit of the Intermediate Language Assembler ilasm.exe disables this default inherting).

GetType()

Every object/instance has a type. The method GetType() returns a System.Type object that can be used to query information about that type (reflection).

ToString()

ToString() provides a basic implmentation to create a string representation of an object.
If not overridden, ToString() returns the fully qualified type name of the object (which is demonstrated with this PowerShell example).
In order to define a custom representation of a (derived) object, ToString() can be overridden.
See also formatting and parsing and System.Convert.ToString().

Equals(otherObj) and GetHashCode()

The method Equals(Object otherObj) is supposed to return true if otherObj is (semantically?) equal to this object.
For any two objects that are equal, their GetHashCode() method must return the same value.
The opposite is not true, however, two different object might also return the same value for GetHashCode().
The value of GetHashCode() is used in conjunction with inserting and locating objects into hash-based collection types such as
See also this PowerShell example that demonstrates how a PowerShell class implements System.IComparable and overrides Equals() and GetHashCode().

MemberwiseClone()

protected object MemberwiseClone ();
MemberwiseClone() creates a shallow copy of the current object.
Compare with the System.IClonable interface.

Overriding Equals() or GetHashCode()

If one the methods Equals() or GetHashCode() is overridden, the othermethod must also be overridden, otherwise, a warning such as the following is thrown by a (C#?) compiler:
Warning as Error: '…' overrides Object.Equals(object o) but does not override Object.GetHashCode()

Index