using System;
public class Program
{
struct FunkyStruct
public FunkyStruct(int d)
val = d;
}
public int val;
// ...other members
// User-defined conversion from Digit to double
public static implicit operator int (FunkyStruct d)
return d.val;
// User-defined conversion from double to Digit
public static implicit operator FunkyStruct(int d)
return new FunkyStruct(d);
public static void Main()
FunkyStruct s;
s = 10;
Console.WriteLine(s.val);
Console.WriteLine(s);