<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Nima Airyana</title>
        <link>https://virgool.io/feed/@nima.airyana</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-17 03:32:15</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/244135/avatar/avatar.png?height=120&amp;width=120</url>
            <title>Nima Airyana</title>
            <link>https://virgool.io/@nima.airyana</link>
        </image>

                    <item>
                <title>استراک تایپ ها در سی شارپ</title>
                <link>https://virgool.io/@nima.airyana/%D8%A7%D8%B3%D8%AA%D8%B1%D8%A7%DA%A9-%D8%AA%D8%A7%DB%8C%D9%BE-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-uc9dwhplknb7</link>
                <description>خب اول از همه مهمترین نکته که همه میدونیم یا باید بدونیم اینه که استراک ها ولیو تایپ هستنالبته بر خلاف کلاس هاخب چرا این نکته مهمه؟میتونم بگم اصلی ترین دلیلش اینه که مستقیم داخل استک ذخیره سازی میشن و حالت ارجاع (رفرنس) ندارن که این خودش میتونه باعث افزایش چندین برابری شما در پرفرمنستون باشه ، منابع کمتری استفاده بشه و این که ولیو تایپ ها قابل تغییر (mutable) هستن ، این ها عمده دلایل بسیار مهم استفاده از استراک ها هستن که باید حتما بهشون توجه کردمحدویت ها در استراکچر ها نسبت به کلاس هاما نمیتونیم یه سازنده بدون پارامتر داخل استراک داشته باشیم ، هر استراکچری یه دیفالت کاستراکتور داره که بدون پارامتر هستما نمیتونیم فیلد ها یا پراپرتی هامون رو مقدار دهی اولیه کنیم ، البته میشه فیلد ها یا پراپرتی های استاتیک یا کانست رو مقدار دهی اولیه کرد (اینیشیالایز کرد)یه سازنده داخل استراک تایپ باید تمامی فیلد ها رو مقدار دهی کنهنمیتونیم استراکچر ها رو از کلاس یا استراکچر دیگه ای ارث بری کنیم ، البته میشه از اینترفیس ارث بری کردو در آخر نمیشه فاینالایزر (finalizer) داخل استراک تایپ لحاظ کردبر اساس داکیومنت اصلی خود وبسایت مایکروسافت</description>
                <category>Nima Airyana</category>
                <author>Nima Airyana</author>
                <pubDate>Sat, 16 Jan 2021 13:11:26 +0330</pubDate>
            </item>
                    <item>
                <title>اعداد بزرگ تر از لانگ در سی شارپ</title>
                <link>https://virgool.io/@nima.airyana/%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%A8%D8%B2%D8%B1%DA%AF-%D8%AA%D8%B1-%D8%A7%D8%B2-%D9%84%D8%A7%D9%86%DA%AF-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-srhaqru0eb9m</link>
                <description>اعداد بزرگ تر از لانگ در سی شارپتا حالا شده که اعدادی بزرگ تر از لانگ یا یو لانگ نیاز داشته باشین داخل سی شارپ؟واقعا بزرگتر از یو لانگ مگه میشه نیاز داشت؟ با این حال مایکروسافت فکر اینجا رو هم کرده و یه چیزی به ما میده به اسم بیگ اینتفکر کنین یه چنین عددی نیاز دارین : 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</description>
                <category>Nima Airyana</category>
                <author>Nima Airyana</author>
                <pubDate>Thu, 14 Jan 2021 01:10:20 +0330</pubDate>
            </item>
                    <item>
                <title>فالس شدن کل شرط وقتی یکی از شروط NaN باشه (سی شارپ)</title>
                <link>https://virgool.io/@nima.airyana/%D9%81%D8%A7%D9%84%D8%B3-%D8%B4%D8%AF%D9%86-%DA%A9%D9%84-%D8%B4%D8%B1%D8%B7-%D9%88%D9%82%D8%AA%DB%8C-%DB%8C%DA%A9%DB%8C-%D8%A7%D8%B2-%D8%B4%D8%B1%D9%88%D8%B7-nan-%D8%A8%D8%A7%D8%B4%D9%87-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-qowcsjutzzws</link>
                <description>فالس شدن کل شرط وقتی یکی از شروط NaN باشه (سی شارپ)لس شدن کل شرط وقتی یکی از شروط NaN باشهمیدونستین توی زبان سی شارپ وقتی که یک از شروط NaN باشه باعث میشه که کل شرط به صورت فالس باشه؟بر اساس مقاله مقایسه در داخل سایت مایکروسافت این مورد دقیقا بیان شده ، به عکس زیر توجه کنیدنکته ای که داخل سایت خود مایکروسافت لحاظ شدهبرای مثال :Console.WriteLine(double.NaN &lt; 5.1);   // output: FalseConsole.WriteLine(double.NaN &gt;= 5.1);  // output: Falseلینک منبع مقاله :https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/comparison-operators</description>
                <category>Nima Airyana</category>
                <author>Nima Airyana</author>
                <pubDate>Wed, 13 Jan 2021 22:57:21 +0330</pubDate>
            </item>
            </channel>
</rss>