I know that I can use implicit conversions with a class as follows but is there any way that I can get a instance to return a string without a cast or conversion?
public class Fred
{
    public static implicit operator string(Fred fred)
    {
        return DateTime.Now.ToLongTimeString();
    }
}
public class Program
{
    static void Main(string[] args)
    {
        string a = new Fred();
        Console.WriteLine(a);
        // b is of type Fred. 
        var b = new Fred(); 
        // still works and now uses the conversion
        Console.WriteLine(b);    
        // c is of type string.
        // this is what I want but not what happens
        var c = new Fred(); 
        // don't want to have to cast it
        var d = (string)new Fred(); 
    }
}