تا حالا شده که اعدادی بزرگ تر از لانگ یا یو لانگ نیاز داشته باشین داخل سی شارپ؟
واقعا بزرگتر از یو لانگ مگه میشه نیاز داشت؟ با این حال مایکروسافت فکر اینجا رو هم کرده و یه چیزی به ما میده به اسم بیگ اینت
فکر کنین یه چنین عددی نیاز دارین : 6277101735386680762814942322444851025767571854389858533375
اوکی توی این حالت چیکار میکنید؟
میتونیم از مثال زیر استفاده کنیم برای این کار :
BigInteger number = BigInteger.Pow(UInt64.MaxValue, 3);
Console.WriteLine(number);
// The example displays the following output:
// 6277101735386680762814942322444851025767571854389858533375
واقعا فوق العادست
اما نکته مهمی که هست و باید در نظر داشته باشیم ، اینه که بیگ اینتجرها immutable (غیر قابل تغییر) هستن پس پرفرمنستون رو یه مقدار پایین میارن
بر اساس سایت مایکروسافت :
BigInteger number = BigInteger.Multiply(Int64.MaxValue, 3);
number++;
Console.WriteLine(number);
Although this example appears to modify the value of the existing object, this is not the case. BigInteger objects are immutable, which means that internally, the common language runtime actually creates a new BigInteger object and assigns it a value one greater than its previous value. This new object is then returned to the caller.
لینک مقاله ی مربوطه :
https://docs.microsoft.com/en-us/dotnet/api/system.numerics.biginteger?view=net-5.0