There are a few restrictions to conversion operators : Conversion Operator Overload « Operator Overload « C# / CSharp Tutorial






  1. Either the target type or the source type of the conversion must be a class that you create.
  2. You cannot redefine the conversion from double to int.
  3. You cannot define a conversion to or from Object.
  4. You cannot define both an implicit and an explicit conversion for the same source and target types.
  5. You cannot define a conversion from a base class to a derived class.
  6. You cannot define a conversion from or to an interface.

(Quote from C# The Complete Reference, Publisher: Osborne/McGraw-Hill, March 8, 2002, Language: English ISBN-10: 0072134852 ISBN-13: 978-0072134858)

  1. Here are the other operators that cannot be overloaded.

  2. &&
  3. ||
  4. []
  5. ()
  6. new
  7. is
  8. sizeof
  9. typeof
  10. ?
  11. ->
  12. .
  13. =
8.4.Conversion Operator Overload
8.4.1.There are two forms of conversion operators, implicit and explicit
8.4.2.There are a few restrictions to conversion operators
8.4.3.User-Defined Conversions: Conversion Lookup
8.4.4.User-Defined Conversions