本文整理汇总了C#中Variant.AsSByte方法的典型用法代码示例。如果您正苦于以下问题:C# Variant.AsSByte方法的具体用法?C# Variant.AsSByte怎么用?C# Variant.AsSByte使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Variant
的用法示例。
在下文中一共展示了Variant.AsSByte方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WriteVariant
private void WriteVariant(Variant value)
{
switch (value.Kind)
{
case VariantKind.Null:
_writer.Write((byte)EncodingKind.Null);
break;
case VariantKind.Boolean:
_writer.Write((byte)(value.AsBoolean() ? EncodingKind.Boolean_True : EncodingKind.Boolean_False));
break;
case VariantKind.Byte:
_writer.Write((byte)EncodingKind.UInt8);
_writer.Write(value.AsByte());
break;
case VariantKind.SByte:
_writer.Write((byte)EncodingKind.Int8);
_writer.Write(value.AsSByte());
break;
case VariantKind.Int16:
_writer.Write((byte)EncodingKind.Int16);
_writer.Write(value.AsInt16());
break;
case VariantKind.UInt16:
_writer.Write((byte)EncodingKind.UInt16);
_writer.Write(value.AsUInt16());
break;
case VariantKind.Int32:
{
var v = value.AsInt32();
if (v >= 0 && v <= 10)
{
_writer.Write((byte)((int)EncodingKind.Int32_0 + v));
}
else if (v >= 0 && v < byte.MaxValue)
{
_writer.Write((byte)EncodingKind.Int32_1Byte);
_writer.Write((byte)v);
}
else if (v >= 0 && v < ushort.MaxValue)
{
_writer.Write((byte)EncodingKind.Int32_2Bytes);
_writer.Write((ushort)v);
}
else
{
_writer.Write((byte)EncodingKind.Int32);
_writer.Write(v);
}
}
break;
case VariantKind.UInt32:
{
var v = value.AsUInt32();
if (v >= 0 && v <= 10)
{
_writer.Write((byte)((int)EncodingKind.UInt32_0 + v));
}
else if (v >= 0 && v < byte.MaxValue)
{
_writer.Write((byte)EncodingKind.UInt32_1Byte);
_writer.Write((byte)v);
}
else if (v >= 0 && v < ushort.MaxValue)
{
_writer.Write((byte)EncodingKind.UInt32_2Bytes);
_writer.Write((ushort)v);
}
else
{
_writer.Write((byte)EncodingKind.UInt32);
_writer.Write(v);
}
}
break;
case VariantKind.Int64:
_writer.Write((byte)EncodingKind.Int64);
_writer.Write(value.AsInt64());
break;
case VariantKind.UInt64:
_writer.Write((byte)EncodingKind.UInt64);
_writer.Write(value.AsUInt64());
break;
case VariantKind.Decimal:
_writer.Write((byte)EncodingKind.Decimal);
_writer.Write(value.AsDecimal());
break;
case VariantKind.Float4:
_writer.Write((byte)EncodingKind.Float4);
_writer.Write(value.AsSingle());
//.........这里部分代码省略.........