public void SetDirect(object value)
{
switch (typeStack)
{
case NumberOnStack.Int32:
if (value is bool)
{
v32 = ((bool)value) ? 1 : 0;
}
else if (value is int)
{
v32 = (int)value;
}
else if(value is uint)
{
v32 = (int)(uint)value;
}
else if (value is short)
{
v32 = (short)value;
}
else if (value is UInt16)
{
v32 = (UInt16)value;
}
else if(value is char)
{
v32 = (char)value;
}
else if (value is byte)
{
v32 = (byte)value;
}
else if (value is sbyte)
{
v32 = (sbyte)value;
}
else
{
v32 = (int)Convert.ToDecimal(value);
}
break;
case NumberOnStack.Int64:
if(value is Int64)
{
v64 = (Int64)value;
}
else if(value is UInt64)
{
v64 = (Int64)(UInt64)value;
}
else
{
v64 = (Int64)Convert.ToDecimal(value);
}
break;
case NumberOnStack.Double:
vDF = (double)Convert.ToDecimal(value);
break;
}
}