namespace XLua { public interface RawObject { object Target { get; } } } namespace XLua.Cast { public class Any : RawObject { T mTarget; public Any(T i) { mTarget = i; } public object Target { get { return mTarget; } } } public class Byte : Any { public Byte(byte i) : base(i) { } } public class SByte : Any { public SByte(sbyte i) : base(i) { } } public class Char : Any { public Char(char i) : base(i) { } } public class Int16 : Any { public Int16(short i) : base(i) { } } public class UInt16 : Any { public UInt16(ushort i) : base(i) { } } public class Int32 : Any { public Int32(int i) : base(i) { } } public class UInt32 : Any { public UInt32(uint i) : base(i) { } } public class Int64 : Any { public Int64(long i) : base(i) { } } public class UInt64 : Any { public UInt64(ulong i) : base(i) { } } public class Float : Any { public Float(float i) : base(i) { } } }