假设我有一个这样的UInt128
UInt64 upperA = 7, lowerA = 8;
UInt128 foo = new(upperA, lowerA);
++foo;
现在我要从更新后的foo中提取两个UInt64.
如果它们是财产,我可以这么做
UInt64 upperB = foo.Upper, lowerB = foo.Lower;
但它们不是,那么我怎么才能得到它们呢?
假设我有一个这样的UInt128
UInt64 upperA = 7, lowerA = 8;
UInt128 foo = new(upperA, lowerA);
++foo;
现在我要从更新后的foo中提取两个UInt64.
如果它们是财产,我可以这么做
UInt64 upperB = foo.Upper, lowerB = foo.Lower;
但它们不是,那么我怎么才能得到它们呢?
通过转换为UInt64,您已经可以获得较低的位;要获得较高的位,您可以首先应用位移位:
var lower = (UInt64)foo;
var upper = (UInt64)(foo >> 64);