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
Are structs value types c#?
What are the methods in c#?
What is the difference between inheritance and abstract class?
What does xpath return?
Why do I get a security exception when I try to run my c# app?
What do you mean by thread safe in c#?
How many bits is int32?
What are instance fields in c#?
What is the default modifier for class in c#?
Why do we need to serialize data?
What is private variable?
What is a nullreferenceexception and how do I fix it?
How does return work in c#?
Is it possible to have a static indexer in c#?
What is interface used in c#?