using System; public class ConvFromInt { public int val; public ConvFromInt () { val = 0; } public ConvFromInt (int value) { val = value + 1; } public static implicit operator ConvFromInt (int value) { return new ConvFromInt (value); } } public class Foo { public static ConvFromInt i = 0; public static object BoolObj = (bool) false; public static object ByteObj = (byte) 0; public static ValueType BoolVal = (bool) false; public static void Main () { if (i == null) throw new Exception ("i"); if (i.val == 0) throw new Exception ("i.val"); if (BoolObj == null) throw new Exception ("BoolObj"); if (ByteObj == null) throw new Exception ("ByteObj"); if (BoolVal == null) throw new Exception ("BoolVal"); } }