System.Numerics.BigIntegerBuilder.GetIntegerParts C# (CSharp) Méthode

GetIntegerParts() private méthode

private GetIntegerParts ( int signSrc, int &sign, uint &bits ) : void
signSrc int
sign int
bits uint
Résultat void
        internal void GetIntegerParts(int signSrc, out int sign, out uint[] bits) {
            if (this._iuLast == 0) {
                if (this._uSmall <= 0x7fffffff) {
                    sign = (int)(signSrc * this._uSmall);
                    bits = null;
                    return;
                }
                if (this._rgu == null) {
                    this._rgu = new uint[] { this._uSmall };
                }
                else if (this._fWritable) {
                    this._rgu[0] = this._uSmall;
                }
                else if (this._rgu[0] != this._uSmall) {
                    this._rgu = new uint[] { this._uSmall };
                }
            }
            sign = signSrc;
            int num = (this._rgu.Length - this._iuLast) - 1;
            if (num <= 1) {
                if ((num == 0) || (this._rgu[this._iuLast + 1] == 0)) {
                    this._fWritable = false;
                    bits = this._rgu;
                    return;
                }
                if (this._fWritable) {
                    this._rgu[this._iuLast + 1] = 0;
                    this._fWritable = false;
                    bits = this._rgu;
                    return;
                }
            }
            bits = this._rgu;
#if !(dotNET10 || dotNET11 || dotNETCF10 || dotNETCF20 || dotNETMF)
            Array.Resize<uint>(ref bits, this._iuLast + 1);
#else
            Resize(ref bits, this._iuLast + 1);
#endif
            if (!this._fWritable) {
                this._rgu = bits;
            }
        }