<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های سعید رضایی</title>
        <link>https://virgool.io/feed/@m_66876040</link>
        <description>sarezCodes.ir</description>
        <language>fa</language>
        <pubDate>2026-04-15 08:55:53</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>سعید رضایی</title>
            <link>https://virgool.io/@m_66876040</link>
        </image>

                    <item>
                <title>آموزش css به صورت عمیق</title>
                <link>https://virgool.io/@m_66876040/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-css-%D8%A8%D9%87-%D8%B5%D9%88%D8%B1%D8%AA-%D8%B9%D9%85%DB%8C%D9%82-faypx2ltnd9n</link>
                <description>“یک دقیقه برای یادگیری یک عمر برای تسلط”این عبارت ممکن است کمی اغراق آمیز به نظر برسد اما در دنیای برنامه نویسی غیرقابل باور نیست.اگر بخواهیم کمی دقیق تر به موضوع بپردازیم لازم است بدانید که یادگیری قوانین CSS کار چندان سختی نیست .برای مثال شما یک Selector مینویسید که یکی از اجزای موجود در صفحه را انتخاب کند سپس به کمک Property به آن ویژگی یا مقادیر مختلف را نسبت می دهید.حتی افرادی که به تازگی کار خود را با CSS آغاز کرده اند نیز مشکل خاصی در درک این موضوع ندارند.مسئله اصلی دانستن این است که چه موقعی زمان درست استفاده از این دانسته هاست.ادامه مطلب</description>
                <category>سعید رضایی</category>
                <author>سعید رضایی</author>
                <pubDate>Mon, 23 May 2022 10:26:54 +0430</pubDate>
            </item>
                    <item>
                <title>Refactoring (باز آرایی)</title>
                <link>https://virgool.io/Rocket/refactoring-%D8%A8%D8%A7%D8%B2-%D8%A2%D8%B1%D8%A7%DB%8C%DB%8C-kjc61ck4qzik</link>
                <description>این مفهوم فرآیند بهبود طراحی کد موجود بدون تغییر رفتار آن است،در واقع شما با این عمل کد پیچیده خود را به یک کد ساده (بدون تغییری در عملکرد کد) تغییر می دهید.شما می توانید Refactoring را به عنوان  تکنیکی برای بهبود طراحی کدهای موجود ببینید، با اصلاح مجدد کد می توانید خوانایی کد را بهبود بخشیده و پیچیدگی آن را از بین ببرید.اگر کد یک برنامه به راحتی قابل خواندن و درک باشد ،برنامه ساخته شده دارای کیفیت بالایی نسبت به برنامه ای با کدهای غیر مرتب خواهد بود.در Refactoring تغییرات به صورت تغییرات کوچک اعمال می شوند و این باعث می شود که تغییرات باعث تغییر در عملکرد کد نشود.البته که این تغییرات وقتی در کنار یکدیگر قرار گیرند مشاهده خواهید کرد باعص تغییرات عمده ای در کد برنامه بدون تغییر در عملکرد برنامه شده اید.ادامه مطلب</description>
                <category>سعید رضایی</category>
                <author>سعید رضایی</author>
                <pubDate>Sun, 24 Apr 2022 13:21:21 +0430</pubDate>
            </item>
                    <item>
                <title>اصول طراحی SOLID در #C</title>
                <link>https://virgool.io/@m_66876040/%D8%A7%D8%B5%D9%88%D9%84-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-solid-%D8%AF%D8%B1-c-urwkwgbl13on</link>
                <description>اصول طراحی SOLID در #C اصول اولیه طراحی هستند.کلمه SOLID مخفف اصول زیر می باشد :Single Responsibility Principle (SRP)Open closed Principle (OSP)Liskov substitution Principle (LSP)Interface Segregation Principle (ISP)Dependency Inversion Principle (DIP)در این مطلب اصول  SOLID را با مثال هایی در #C خواهیم آموخت.دلیل اکثر برنامه های ناموفقتوسعه دهندگان با استفاده از دانش و تجربه خود شروع به ساخت نرم افزار با طراحی های خوب و مرتب می کنند. اما با گذشت زمان، برنامه ها ممکن است باگ هایی ایجاد کنند که طراحی برنامه باید برای هر “درخواست تغییر” یا “درخواست ویژگی جدید” تغییر یابد. به همین دلیل پس از مدتی ممکن است برای این تغییرات با مشکلات زیادی روبرو شویم، اما این به این معنا نیست که درخواست‌های تغییر یا ویژگی‌های جدید مقصر هستند بلکه آنها بخشی از توسعه نرم افزار هستند. ما نمی توانیم آنها را متوقف کنیم یا آنها را رد کنیم. پس مقصر اینجا کیست؟ بدیهی است که مقصر نوع طراحی برنامه است.موارد زیر ایرادات طراحی هستند که بیشتر در نرم افزار باعث آسیب می شوند.سپردن مسئولیت های بیشتر به کلاس ها : با سپردن مسئولیت های بیشتر به کلاس ها، استرس بیشتری به کلاس ها وارد کنید. (بسیاری از عملکردها مربوط به یک کلاس نیست.)وادار کردن کلاس ها به وابستگی به یکدیگر: اگر کلاس‌ها به یکدیگر وابسته باشند (به عبارت دیگر به‌طور محکمی با هم پیوند خورده‌اند)، تغییر در یکی بر دیگری تأثیر می‌گذارد.نوشتن کد تکراری در نرم افزارراه حلانتخاب معماری صحیح : ( MVC, MVP, MVVPمعماری سه لایه و غیره)پیروی از اصول طراحی :انتخاب الگوهای طراحی صحیح برای ساخت نرم افزار.اکنون ابتدا اصول طراحی را مرور می کنیم.مقدمه ای بر اصول SOLIDاصول SOLID اصول طراحی هستند که ما را قادر می سازند تا اکثر مشکلات طراحی نرم افزار را مدیریت کنیم. رابرت سی مارتین این اصول را در دهه 1990 گردآوری کرد. اصول طراحی به شما کمک می کند تا کدی را پیاده سازی کنید که بتوانید با در نظر گرفتن انعطاف پذیری، گسترش پذیری، خوانایی و نگهداری، طرحی را ایجاد کنید. با دانش و استفاده مناسب از اصول طراحی، توسعه دهندگان می توانند راهنمایی هایی را در زمینه نوشتن کدهایی دریافت کنند که دارای اتصالات سست، قابل آزمایش و همچنین قابل نگهداری هستند.هنگامی که این اصول را یاد گرفتید وسوسه خواهید شد که آنها را در همه جای کد خود اعمال کنید، اما مراقب باشید که این اصول در همه شرایط مناسب نیستند. گاهی اوقات با به کار بردن اصول، قطعه کد خود را بیش از حد مهندسی می کنید و پیچیدگی های غیر ضروری را اضافه می کنید. https://virgool.io/p/urwkwgbl13on/%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C%E2%80%8C%D9%87%D8%A7%DB%8CSOLID-SarezCodes-%D8%B3%D8%B9%DB%8C%D8%AF%D8%B1%D8%B6%D8%A7%DB%8C%DB%8C </description>
                <category>سعید رضایی</category>
                <author>سعید رضایی</author>
                <pubDate>Thu, 07 Apr 2022 11:58:29 +0430</pubDate>
            </item>
                    <item>
                <title>دوره مقدماتی آزمون واحد در دات نت Core</title>
                <link>https://virgool.io/@m_66876040/%D8%AF%D9%88%D8%B1%D9%87-%D9%85%D9%82%D8%AF%D9%85%D8%A7%D8%AA%DB%8C-%D8%A2%D8%B2%D9%85%D9%88%D9%86-%D9%88%D8%A7%D8%AD%D8%AF-%D8%AF%D8%B1-%D8%AF%D8%A7%D8%AA-%D9%86%D8%AA-core-xuj9ci0yfssq</link>
                <description>این دوره در چند جلسه به فهرست زیر تدریس شده است :تست در برنامه های دات نت (مقدمه)بهترین الگو های آزمایش واحد در NET Core. و NET Standard. قسمت اولبهترین الگو های آزمایش واحد در NET Core. و NET Standard. قسمت دومآزمون واحد در NET Core. با استفاده از xUnitآزمون واحد در NET Core. با استفاده از NUnitآزمون واحد در NET Core. با استفاده از MSUnitادامه مطلب https://virgool.io/p/xuj9ci0yfssq/%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C%E2%80%8C%D9%87%D8%A7%DB%8C%D8%A2%D8%B2%D9%85%D9%88%D9%86%D9%88%D8%A7%D8%AD%D8%AF-SarezCodes-%D8%B3%D8%B9%DB%8C%D8%AF%D8%B1%D8%B6%D8%A7%DB%8C%DB%8C </description>
                <category>سعید رضایی</category>
                <author>سعید رضایی</author>
                <pubDate>Sun, 20 Mar 2022 17:51:44 +0330</pubDate>
            </item>
                    <item>
                <title>مقدمه ای بر ریاضیات در بازی ها</title>
                <link>https://virgool.io/@m_66876040/%D9%85%D9%82%D8%AF%D9%85%D9%87-%D8%A7%DB%8C-%D8%A8%D8%B1-%D8%B1%DB%8C%D8%A7%D8%B6%DB%8C%D8%A7%D8%AA-%D8%AF%D8%B1-%D8%A8%D8%A7%D8%B2%DB%8C-%D9%87%D8%A7-wyvhtz0cvgbo</link>
                <description>ریاضیات در بازی ها : مقدمهدر دوران کودکی من یکی از بازی های پرطرفدار نوشته شده برای کنسول های بازی ، بازی سوپر ماریو بود ،همانطور که می دانید تمام شکل های موجود در تصویر بازی ،یک دسته 1 و 0 هستند که به پیکسل های رنگی تبدیل می شوند که با  ترسیم های پیاپی باعث ایجاد انیمیشن و حرکت می شوند.خوشبختانه تلویزیون های آن زمان زیاد بزرگ نبودند و ما شخصیت های بازی را کوچکتر و واقعی تر می دیدیم.برای شروع یاد میگریم که یکی از این مربع های ساده رو بر روی یک نقطه خاص از تصویر قرار دهیمنقاط  X و Y :صفحه خود را مانند یک  نمودار خالی ، با موقعیت X و Y در نظر بگیرید.به طور طبیعی، محور Y عمودی از پایین از صفر شروع می شود و بالا می رود. در برنامه نویسی اکثر بازی ها ، محور Y از بالا از صفر شروع می شود.محور X افقی از سمت چپ از صفر شروع می شود و به سمت راست افزایش می یابد.hero.x = 60hero.y = 60شخصیت ما از بالای صفحه 60 پیکسل و از سمت چپ 60 پیکسل است.به روشی اساسی و بسیار ساده ، این است که چگونه شخصیت خود را روی صفحه قرار می دهیم.در این مرحله ، می خواهم به شما یادآوری کنم که این یک درس برنامه نویسی نیست و من در مورد زبان برنامه نویسی خاصی صحبت نمی کنم .اکنون شخصیت خود را بر روی صفحه داریم ، در مرحله بعدی باید او را حرکت دهیم.ریاضیات در بازی ها : جبربرای جابجایی شخصیت ،  ما کدی را برای فشار دادن یک کلید اضافه می کنیم. برای کلید سمت راست ، ما می خواهیم موقعیت X را افزایش دهیم و برای کلید پایین می خواهیم موقعیت Y را افزایش دهیم. کلیدهای چپ و بالا برعکس خواهند بود.هنگامی که برای اولین بار کاراکتر خود را به صفحه اضافه کردیم ، موقعیت x را 10و y را 0 تعریف کردیم. آیا می توانید حدس بزنید که پس از فشار دادن کلیدهای راست یا پایین ، چگونه موقعیت های x و y را تعریف می کنیم؟برای کلید سمت راست ، ما 1 را به موقعیت فعلی x اضافه می کنیم (hero.x) که کد آن  ممکن است به شکل زیر باشد:hero.x = hero.x + 1با توجه به اینکه موقعیت اولیه شخصیت در مختصات X=10  می باشد ،پس از یک بار فشار دادن کلید راست ، موقعیت جدید X ما 11 خواهد بود.اگر دوباره کلید راست را فشار دهیم ، موقعیت جدید X  ما 12  خواهد بود ، که برابر با موقعیت فعلی x (11) به علاوه 1 است.اگر ما کلیدهای بالا یا پایین را فشار دهیم موقعیت Y را تغییر خواهیم داد.کد هر کلید پیکان ممکن است به این شکل باشد:چپ : hero.x = hero.x -1راست : hero.x = hero.x+1بالا : hero.y = hero.y-1پایین : hero.y = hero.y+1این یک نمای کلی از حرکات اساسی یک بازی است ، این حرکات بسیار اساسی هستند.اگر در حال بازی یک پلتفرم بودید که می خواهید میزان پرش شخصیت را محدود کنید ، نمی توانید فقط کلید بالا را فشار دهید تا شخصیت شما به طور موثر پرواز کند.اگر یک کشتی فضایی داشتید که در فضا در حال حرکت است ممکن است بخواهید چیزهایی مانند رانش و شتاب را اضافه کنید ، یا می توانید اصطکاک و جاذبه را برای تغییر نحوه حرکت شخصیت خود اضافه کنید.تشخیص برخورد :استفاده دیگر از مختصات x و y در بازی ها تشخیص برخورد است ، اگر دو “مورد” فضای یکسانی را اشغال کنند چه کاری انجام می دهید؟اگر شخصیت شما به دیواری رسید شما، نمی خواهید او از دیوار عبور کند ، بنابراین حرکت او را در جهت دیوار محدود می کنید.اگر به دشمن شلیک کنید ، هنگام برخورد گلوله با دشمن ، دشمن شما مورد اصابت قرار می گیرد.اگر شخصیت شما به یک سکوی بالاتر می پرد ، شما می خواهید که او بر روی سکو فرود آید (موقعیت Y جدید) و به همان جایی که از ابتدا شروع کرده است سقوط نکند.از مختصات X و Y به همراه برخی متغیرهای دیگر می توان برای بهبود فیزیک دنیای بازی شما استفاده کرد یا می توان از آنها برای دشوارتر کردن استفاده کرد. ریاضیات در بازی ها (فیزیک و متغیرها) :  در جایی که به حرکت یک شخصیت با استفاده از “hero.x = hero.x + 1” اشاره کردم ، hero.x متغیری است که برای نشان دادن موقعیت شخصیت ما استفاده می شود.X  می تواند در حرکات مختلف نشانگر شخصیت در مکان های مختلفی از صفحه باشد ،این حرکت ها ابتدایی و پایه هستند هرچند بعد از مدتی ممکن است کنترل برخی از آنها کسل کننده باشند.ما می توانیم با استفاده از متغیرهای بیشتر در معادلات خود ، برخی از فیزیک ها و حالت های جدید  را به حرکات بازی اضافه کنیم.در تصویر بالا ، صفحه نمایش به 2 جهان بالای آب و جهان زیر آب تقسیم شده است.بالاتر از آب ، ما می خواهیم شخصیت ما سریعتر از زیر آب حرکت کند ، اما همچنین می خواهیم او را مستعد جاذبه کنیم که او را به سمت پایین می کشد ،مگر اینکه کلید بالا برای کاهش موقعیت Y دوباره استفاده شود.در مقابل در زیر آب می خواهیم شخصیت ما کندتر حرکت کند ، اما همچنین می خواهیم او را مستعد شناور بودن کنیم که او را بالا می کشد مگر اینکه از کلید پایین برای افزایش موقعیت Y استفاده شود.توجه داشته باشید که همانطور که قبلا گفته شد افزایش Y به معنی افزودن شده به فاصله از بالای صفحه می باشد و  Y=0 بالاترین نقطه در بالای صفحه را نشان می دهد.موقعیت Y شخصیت را می توان بررسی کرد که آیا او بالاتر از سطح آب است یا پایین تر از آن،اگر کاراکتر بالاتر یا زیر آب باشد ، می توان متغیرهای اضافی را ایجاد و تغییر داد.گرانش (gravity)= 1.05 بالاتر از آب و 0.95 زیر آباصطکاک (friction)= 1 بالاتر از آب و 0.5 زیر آبمعادله فشار دادن کلیدهای راست و پایین می تواند به ترتیب زیر باشد:hero.x = hero.x + 1 + frictionhero.y = hero.y + (1 * gravity)ابتدا کلید راست را بگیرید. اگر موقعیت فعلی شخصیت ما 50 باشد و او بالاتر از آب باشد ، با فشار دادن کلید سمت راست به صورت زیر تغییر مکان میدهد:hero.x = 50 + 1 + 1:   52hero.x = 52 + 1 + 1:   54hero.x = 54 + 1 + 1:   56با شروع دوباره از موقعیت 50 ، اگر شخصیت ما زیر آب باشد،با 3 بار فشار دادن کلید سمت راست، به صورت زیر تغییر مکان می دهد:hero.x = 50 + 1 + 0.5:   51.5hero.x = 51.5 + 1 + 0.5:   53hero.x = 53 + 1 + 0.5:   54.5همانطور که می بینید شخصیت ما در زیر آب کندتر حرکت می کند. بعد از 3 بار فشار دادن کلید او از موقعیت X =50 به 56 در بالای آب و از 50 به 54.5 در زیر آب به سمت جلو حرکت کرد.حال ببینیم که با فشار دادن کلید پایین چه اتفاقی می افتد.ابتدا بالای آب ، ما از موقعیت 30 شروع می کنیم و 3 بار کلید پایین را فشار می دهیم که نتیجه به شکل زیر است:hero.y = 30 + (1 * 1.05) :  31.05hero.y = 31.05 + (1 * 1.05):  32.1hero.y = 32.1 + (1 * 1.05):  33.15بعد ، اگر موقعیت Y شروع ما 70 باشد و شخصیت زیر آب باشد ، نتیجه 3 بار فشار دادن کلید پایین به این شکل است:hero.y = 70 + (1 * 0.95):   70.95hero.y = 70.5 + (1 * 0.95):   71.9hero.y = 71.9 + (1 * 0.95):  72.85در بالای آب ، شخصیت ما سریعتر رو به پایین حرکت می کند، زیرا جاذبه زمین به سقوط آن کمک می کند ، اما در زیر آب کمتر رو به پایین حرکت می کند زیرا خاصیت شناوری سرعت حرکت او را کند می کند.اگر کاراکتر زیر آب باشد ، یک حلقه می تواند  تا زمان قرار گرفتن شخصیت در سطح آب  تکرار شود.(برای مثال شی ای را در نظر بگیرید که در زیر آب قرار دارد و به خودی خود رو به بالا حرکت می کند)این حلقه ممکن است“hero.y = hero.y * gravity” باشد. بدون فشار دادن هیچ کلید ، موقعیت Y شخصیت ما به تدریج کاهش می یابد که به نظر می رسد به آرامی به سمت بالا شناور است.به همین ترتیب ، اگر شخصیت  بالای آب بود ، ممکن است کد مشابهی داشته باشید ، اما با این تفاوت که به تدریج موقعیت Y را که به نظر می رسد شخصیت در حال سقوط است ، افزایش می دهد.ریاضیات در بازی ها (فیثاغورس و مثلثات) :برای شروع بهتر است یادآوری کنم که فیثاغورس  چه می گوید :فیثاغورس دانشمند و ریاضیدان یونان باستان، با تحقیق بر روی مثلث قائم الزاویه به این نتیجه رسید که همواره مساحت مربعی که با وتر یک مثلث قائم الزاویه ساخته می‌شود برابر است با مجموع مساحت دو مربعی که با اضلاع زاویه قائم ساخته می‌شود و این قانون بعدها به عنوان رابطهٔ فیثاغورس نامیده شد. در هر مثلث قائم الزاویه، مجذور وتر برابر است با مجموع مجذور دو ضلع زاویهٔ قائمه، در واقع فرمول ریاضی آن به فرمول زیر میشود. هرگاه x و y دو ضلع قائم مثلث قائم الزاویه باشند و z وتر آن باشد آنگاه داریم:x^(2) + y^(2) = z^(2)خوب این از تعریف قاعده فیثاغورس حالا می خواهیم یاد بگیریم که این قاعده چه کمکی ذر طراحی بازی ها به ما خواهند کرد.قضیه فیثاغورس و رسیدن دو شخصیت یا دو  شی به یک دیگرهمانطور که در تصویر بالا مشاهده میکنید تصویری از بازی معروف مرورگر کروم را قرار داده ام، دشمن در موقعیت X,Y متفاوتی نسبت به شخصیت ما در بازی قرار دارد.اگر هر دو کاراکتر در یک موقعیت Y یکسانی قرار داشته باشند و فقط X های آنها متفاوت بود به راحتی میتوانستیم فاصله بین آنها را محاسبه کنیم.در این گونه شرایط می بایست با تشکیل یک مثلث قائم الزاویه فاصله بین کاراکترهای بازی را محاسبه کنیم.برای مثال اگر در تصویر بالا دایناسور در موقعیت x=5 و Y=20 و پرنده(دشمن) در موقعیت X=25 و Y=10 باشد.با تفریق X ها و Y های دو شی از یکدیگر میتوانیم طول ضلع مجاور و مقابل را بدست آورده و از طریق آن ها طول وتر که در این تصویر فاصله واقعی بین دو شی می باشد را بدست آوریم.اکنون مشاهده می کنید که در این مثال طول ضلع مجاور برابر است با X=25-5=20 و طول ضلع مقابل برابر است با Y=20-10=10با این اوصاف طول وتر برابر است با : قضیه فیثاغورس و سرعتبا توجه به در نظر داشتن مثال بالا اگر خودرویی داشته باشیم که به صورت مورب حرکت می کند و از  موقعبت دایناسور به موقعیت پرنده در یک ثانیه می رسد یعنی خودروی ما با سرعت 22.36 پیکسل در ثانیه حرکت می کند.ششما می توانید ابن عدد بدست آمده را به عنوان سرعت خودرو بر روی صفحه نمایش نمایش داده و همچنین می توانید شرایطی بزارید که اگر سرعت بیشتر از یک مقدار خاصی شد خودرو توسط پلیس متوقف شود.تغییر زاویهتصور کنید که بازی تنیسی را  انجام می دهید که در آن توپ فقط از چپ به راست عقب و جلو حرکت می کند.  یک بازی آسان اما فوق العاده خسته کننده را تجربه خواهید کرد.برای بازی هایی مانند تنیس ، پین بال و غیره ، می خواهید زاویه ای که «توپ» به آن بازگردانده می شود،به اینکه کدام قسمت توپ با راکت برخورد می کند وابستگی داشته باشد.برای مثال تصویر زیر را ببینید :در این بازی، بازیکن با یک راکت در پایین صفحه جهت بازگشت توپ را کنترل کرده و مشخص می کند که توپ به سمت کدام خانه رنگی بازگردد.اگر توپ فقط به سمت پایین میفتاد وبعد از برخورد با راکت مستقیماً به عقب بر میگشت تبدیل به یک بازی بسیار کسل کننده می شد.با استفاده از ریاضیات می توان زاویه برگشت توپ به عقب را بر اساس اینکه به کدام قسمت از راکت برخورد می کند را مشخص کرد ، به ظوری که اگر توپ به وسط راکت برخورد کند با زاویه کمی رو به بالا برگردد ولی در اثر برخورد با قسمت های بیرونی تر راکت با زاویه بیشتری به سمت بالا برکردد.در تصویر متحرک زیر به صورت تقریبی نحوه برگشت توپ از دو جهت مختلف را نمایش داده ایم.البته شما میتوانید با انجام بازی های مشابه و با فکر کردن در این باره حالت های مختلفی را حتی با استفاده از فیزیک به این بازی اضافه کنید تا بازی واقعی تر به نظر بیاید.سعید رضایی - sarezcodes</description>
                <category>سعید رضایی</category>
                <author>سعید رضایی</author>
                <pubDate>Mon, 07 Mar 2022 14:36:04 +0330</pubDate>
            </item>
                    <item>
                <title>بررسی عمیق رشته ها در سی شارپ</title>
                <link>https://virgool.io/@m_66876040/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D8%B9%D9%85%DB%8C%D9%82-%D8%B1%D8%B4%D8%AA%D9%87-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-dxwkgilotzrz</link>
                <description>در لینک زیر  با مثال‌هایی در مورد رشته  در سی شارپ صحبت شده است. به عنوان یک برنامه نویس سی شارپ، درک مفهوم رشته ها در سی شارپ بسیار مهم است زیرا در پروژه های مختلف string  ها بسیار کاربردی و پر استفاده هستند بنابراین در این مطلب، نکات زیر  با مثال های مختلف توضیح داده شده است.رشته ها از نوع ارجاعی(reference type)  هستند.تفاوت string و String را بدانیم.رشته ها در سی شارپ immutable هستند.چگونه  String Intern عملکرد رشته ها را بهبود می بخشد؟استفاده ازStringBuilder برای الحاق رشته هادلیل طراحی String ها  به صورت immutable8 https://sarezcodes.ir/%d8%a8%d8%b1%d8%b1%d8%b3%db%8c-%d8%b9%d9%85%db%8c%d9%82-string-%d8%af%d8%b1-%d8%b3%db%8c-%d8%b4%d8%a7%d8%b1%d9%be/ </description>
                <category>سعید رضایی</category>
                <author>سعید رضایی</author>
                <pubDate>Wed, 23 Feb 2022 03:19:08 +0330</pubDate>
            </item>
            </channel>
</rss>