Everyone knows that in dotnet byte, char, int, long etc are value data type and string is a reference data type. Even though being a reference type string behaves much like a value type. In other word, It can directly accepts values and doesn't require new to create an instance. For example...
string name = "M. Aamir Maniar"; //Directly accepts the value
This article explains you how to achive such kind of functionality using implicit operator overloading in C#.
For detailed article click following link.