本文整理汇总了C#中Span.Cast方法的典型用法代码示例。如果您正苦于以下问题:C# Span.Cast方法的具体用法?C# Span.Cast怎么用?C# Span.Cast使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Span
的用法示例。
在下文中一共展示了Span.Cast方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CastOverflow
public void CastOverflow()
{
var huge = Marshal.AllocHGlobal(new IntPtr(ThreeGiB));
try
{
var span = new Span<ulong>((void*)huge, ULongThreeGiBLimit);
var asInt = span.Cast<ulong, int>();
Assert.Equal(Int32ThreeGiBLimit, asInt.Length);
var asULong = asInt.Cast<int, ulong>();
Assert.Equal(ULongThreeGiBLimit, asULong.Length);
asULong[ULongTwoGiBLimit + 4] = 42;
Assert.Equal((ulong)42, span[ULongTwoGiBLimit + 4]);
}
finally
{
Marshal.FreeHGlobal(huge);
}
}
示例2: WhenSourceTypeLargerThaTargetAndOverflowsInt32ThrowsException
public void WhenSourceTypeLargerThaTargetAndOverflowsInt32ThrowsException()
{
unsafe
{
byte dummy;
int sourceLength = 620000000;
var sourceSlice = new Span<SevenBytesStruct>(&dummy, sourceLength);
Assert.Throws<ArgumentException>(() =>
{
var targetSlice = sourceSlice.Cast<SevenBytesStruct, short>();
});
}
}