本文整理汇总了C#中Variant.AsArray方法的典型用法代码示例。如果您正苦于以下问题:C# Variant.AsArray方法的具体用法?C# Variant.AsArray怎么用?C# Variant.AsArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Variant
的用法示例。
在下文中一共展示了Variant.AsArray方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestConstruction
public void TestConstruction()
{
TypedArray a1 = new TypedArray(Variant.EnumType.Double, 2);
a1[0] = 1.0;
a1[1] = 2.0;
Variant v1 = new Variant(a1);
Assert.DoesNotThrow(delegate { v1.AsArray(); });
Assert.Throws<VariantException>(delegate { v1.As<int>(); });
}
示例2: WriteVariant
//.........这里部分代码省略.........
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());
break;
case VariantKind.Float8:
_writer.Write((byte)EncodingKind.Float8);
_writer.Write(value.AsDouble());
break;
case VariantKind.Char:
_writer.Write((byte)EncodingKind.Char);
_writer.Write((ushort)value.AsChar()); // written as ushort because BinaryWriter fails on chars that are unicode surrogates
break;
case VariantKind.String:
WriteStringValue(value.AsString());
break;
case VariantKind.BoxedEnum:
var e = value.AsBoxedEnum();
WriteBoxedEnum(e, e.GetType());
break;
case VariantKind.DateTime:
_writer.Write((byte)EncodingKind.DateTime);
_writer.Write(value.AsDateTime().ToBinary());
break;
case VariantKind.Type:
WriteType(value.AsType());
break;
case VariantKind.Array:
WriteArray(value.AsArray());
break;
case VariantKind.Object:
WriteObject(value.AsObject());
break;
}
}