use of operator overloading of implicit & explicit operators?

Answer Posted / karthikeyant

Implicit:

By eliminating unnecessary casts, implicit conversions can
improve source code readability. However, because implicit
conversions can occur without the programmer's specifying
them, care must be taken to prevent unpleasant surprises.
In general, implicit conversion operators should never
throw exceptions and never lose information so that they
can be used safely without the programmer's awareness. If a
conversion operator cannot meet those criteria, it should
be marked explicit.

class MyType
{
public static implicit operator int(MyType m)
{
// code to convert from MyType to int
}
}

MyType x;
// implicitly call MyType's MyType-to-int conversion
operator
int i = x;

Explicit:
declares a user-defined type conversion operator that must
be invoked with a cast. For example, this operator converts
from a class called Fahrenheit to a class called Celsius:

// Must be defined inside a class called Farenheit:
public static explicit operator Celsius(Farenheit f)
{
return new Celsius((5.0f/9.0f)*(f.degrees-32));
}

Farenheit f = new Farenheit(100.0f);
Celsius c = (Celsius)f;

Is This Answer Correct ?    3 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What is the difference between function and method in c#?

688


What is using in c#?

675


What is an assembly in .net?

788


What is a hash table c#?

676


Difference between StackPanel and RelativePanel ?

805


What does int32 mean in c#?

685


Contrast System.String and System.Text.StringBuilder classes?

755


Is c# queue thread safe?

741


What is difference between asp net and c# net?

708


Why do we use static class in c#?

696


1. Describe page life cycle?

1857


How many types of serialization are there in c#?

671


What is c# console application?

720


What is the base class from which all value types are derived?

743


What is difference between string and stringbuffer in c#?

713