Share via


Conversion Operators (C# Programming Guide)

C# enables programmers to declare conversions on classes or structs so that classes or structs can be converted to and/or from other classes or structs, or basic types. Conversions are defined like operators and are named for the type to which they convert. Either the type of the argument to be converted, or the type of the result of the conversion, but not both, must be the containing type.

class SampleClass
{
    public static explicit operator SampleClass(int i)
    {
        SampleClass temp = new SampleClass();
        // code to convert from int to SampleClass... 

        return temp;
    }
}

Conversion Operators Overview

Conversion operators have the following properties:

  • Conversions declared as implicit occur automatically when it is required.

  • Conversions declared as explicit require a cast to be called.

  • All conversions must be declared as static.

For more information:

See Also

Concepts

C# Programming Guide

Reference

Casting and Type Conversions (C# Programming Guide)

Other Resources

Chained user-defined explicit conversions in C#