So I was reading my "C# for Java Developers" book and I came across the implicit and explicit operators. Java doesn't have these but a friend suggests C++ does. Being that I am not a C++ developer I really can't comment much on it, except to say that it looks like C# just decided to copy functionality from C++, just because it is a "cute" feature of the language. I also can't quite put my finger on the difference between implicit and explicit, so if anybody has any insight on these, please, do share.

It seems to me that explicit is used when you want to force your API clients to use a cast when dealing with different types. So lets say that I have:

public static implicit operator Foo(Bar bar) {...} and I also have a method called
public Foo morph(Foo foo) {...}


If I was ever to use my morph method with a Bar, I could issue the call like:

Bar bee = new Bee();
Foo faa = morph(bee);

And the compiler would be happy. If I was to change implicit for explicit in the operator's declaration, the way of calling the method would be:

Foo faa = morph((Foo) bee); // with explicit cast

Is this it, or is there more to it than this? I also am aware that this isn't really a "mono" question per se, but I thought some of you would be willing to shed some light on the topic... :-)

Thanks!

// David

_______________________________________________
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to