مقایسه جالب انواع مپرهای دات نت
نیک چپساس به تازگی به بررسی و مقایسه انواع مپرهای دات نت پرداخته که نشان میدهد AutoMapper جایگاه خوبی از نظر پرفورمنس و مصرف حافظه ندارد.
در این مقایسه نوشتن مپر دستی بیشترین بازدهی را داشته که مورد انتظار است. به دلیل نداشتن کد پس زمینه و مپ بدون واسطه تخصیص حافظه و زمان اجرا کمترین است.
ابزار Mapperly نتایج خوبی بدست آورده ولی برای استفاده از آن نیاز به تنظیمات و کد نویسی بیشتری دارید.
ابزار Mapster از آنجایی که نیاز به هیچ تنظیم یا تزریق وابستگی ندارد ساده ترین ابزار مپر است که پرفورمنس قابل قبولی هم دارد.
نسخه کامل ویدیو:
https://youtu.be/U8gSdQN2jWI
نیک چپساس به تازگی به بررسی و مقایسه انواع مپرهای دات نت پرداخته که نشان میدهد AutoMapper جایگاه خوبی از نظر پرفورمنس و مصرف حافظه ندارد.
در این مقایسه نوشتن مپر دستی بیشترین بازدهی را داشته که مورد انتظار است. به دلیل نداشتن کد پس زمینه و مپ بدون واسطه تخصیص حافظه و زمان اجرا کمترین است.
ابزار Mapperly نتایج خوبی بدست آورده ولی برای استفاده از آن نیاز به تنظیمات و کد نویسی بیشتری دارید.
ابزار Mapster از آنجایی که نیاز به هیچ تنظیم یا تزریق وابستگی ندارد ساده ترین ابزار مپر است که پرفورمنس قابل قبولی هم دارد.
نسخه کامل ویدیو:
https://youtu.be/U8gSdQN2jWI
👍27❤4🔥2
میان افزار یا Middleware ابزاری است که در ASP NET Core برای خواندن و نوشتن در مسیر Request و Response استفاده میشود. در این ویدیو به معرفی میان افزارها می پردازیم.
https://youtu.be/JVQWP_6iAMo
https://youtu.be/JVQWP_6iAMo
👍6❤2
هایلایت شدن روتها در ASPNET Core 8.0
آپدیت جدید در ASP به همراه ابزار و تحلیگر کد در VS امکان تشخیص روتها و چک کردن درستی آنها را فراهم کرده است.
روتها با رنگ متفاوت نمایش داده میشوند.
با AutoComplete هنگام نوشتن تکمیل میشوند.
اگر اشکالی در آدرس دهی روت یا Route Value ها باشد قبل از اجرای برنامه اعلام میشود.
روتهایی که وجود ندارند یا هم پوشانی دارند اعلام میشود.
این موارد برای Minimal API و Blazor و Web API هم در دسترس خواهند بود.
آپدیت جدید در ASP به همراه ابزار و تحلیگر کد در VS امکان تشخیص روتها و چک کردن درستی آنها را فراهم کرده است.
روتها با رنگ متفاوت نمایش داده میشوند.
با AutoComplete هنگام نوشتن تکمیل میشوند.
اگر اشکالی در آدرس دهی روت یا Route Value ها باشد قبل از اجرای برنامه اعلام میشود.
روتهایی که وجود ندارند یا هم پوشانی دارند اعلام میشود.
این موارد برای Minimal API و Blazor و Web API هم در دسترس خواهند بود.
👍20🔥4❤1
تفاوت بین
اصلیترین تفاوت بین این دو دقت و اندازه آنهاست.
از سوی دیگر،
بطور کلی، اگر به دقت بالا نیاز دارید،
decimal و double
در #C
در #C
، دو نوع داده عددی به نامهای decimal
و double
وجود دارند که برای نمایش اعداد اعشاری به کار میروند.اصلیترین تفاوت بین این دو دقت و اندازه آنهاست.
decimal
یک نوع داده ۱۲۸ بیتی است و حدود ۲۸-۲۹ رقم معنادار را با محدودهای حدوداً ±۷٫۹ × ۱۰²⁸ قابل نمایش است. این نوع داده برای محاسبات مالی و پولی که دقت بالا مورد نیاز است، مناسب است. decimal
از حساب عددی پایه ۱۰ استفاده میکند، بنابراین اعداد اعشاری را نسبت به double
میتواند دقیقتر نمایش دهد.از سوی دیگر،
double
یک نوع داده ۶۴ بیتی است که حدود ۱۵-۱۶ رقم معنادار را با محدودهای حدوداً ±۵٫۰ × ۱۰^-³² تا ±۱٫۷ × ۱۰³⁰ قابل نمایش است. این نوع داده برای محاسبات علمی و فنی که سرعت و محدوده بیشتری مورد نیاز است، مناسب است. double
از حساب عددی پایه ۲ استفاده میکند، بنابراین اعداد اعشاری را نسبت به decimal
با دقت کمتری نمایش میدهد.بطور کلی، اگر به دقت بالا نیاز دارید،
decimal
را برای محاسبات مالی و پولی استفاده کنید. از double
را برای محاسبات علمی و فنی و یا هنگامی که نیاز به اعداد بزرگ با دقت کمتر است استفاده کنید.👍25❤1
چطور با کمک هوش مصنوعی در Bing کدهای بهتری بنویسیم ؟
آموزش اصلاح و باز نویسی کد با کمک AI در بینگ و اضافه کردن تست واحد.
https://youtu.be/u7nm9DMMfmY
آموزش اصلاح و باز نویسی کد با کمک AI در بینگ و اضافه کردن تست واحد.
https://youtu.be/u7nm9DMMfmY
👍7🔥4
سه مزیت اصلی استفاده از http2 در مقایسه با http1.1
سرعت بالاتر: یکی از مزایای اصلی استفاده از HTTP/2، افزایش سرعت بارگیری وب سایتها است. HTTP/2 از یک پروتکل ارتباطی جدید به نام "Multiplexing" برای انتقال بیشتر از یک فایل به صورت همزمان استفاده می کند. این به مرورگرها اجازه می دهد تا دانلود صفحات وب سریع تر و با کمترین تأخیر انجام شود.
بهینهسازی پهنای باند: HTTP/2 برای ارسال درخواست ها و پاسخ ها از فشرده سازی هدر و فشرده سازی داده استفاده می کند. این کاهش حجم داده های ارسالی و دریافتی را سبکتر می کند و بهبود پرفورمنس آپلود و دانلود صفحات را به دنبال دارد.
امنیت بالاتر: استفاده از HTTPS در HTTP/2 الزامی است. در واقع، HTTP/2 برای بهبود امنیت انتقال داده ها از SSL / TLS استفاده می کند. این بهبود در امنیت داده ها به معنی کاهش خطرات امنیتی و حفاظت از کاربران است.
سرعت بالاتر: یکی از مزایای اصلی استفاده از HTTP/2، افزایش سرعت بارگیری وب سایتها است. HTTP/2 از یک پروتکل ارتباطی جدید به نام "Multiplexing" برای انتقال بیشتر از یک فایل به صورت همزمان استفاده می کند. این به مرورگرها اجازه می دهد تا دانلود صفحات وب سریع تر و با کمترین تأخیر انجام شود.
بهینهسازی پهنای باند: HTTP/2 برای ارسال درخواست ها و پاسخ ها از فشرده سازی هدر و فشرده سازی داده استفاده می کند. این کاهش حجم داده های ارسالی و دریافتی را سبکتر می کند و بهبود پرفورمنس آپلود و دانلود صفحات را به دنبال دارد.
امنیت بالاتر: استفاده از HTTPS در HTTP/2 الزامی است. در واقع، HTTP/2 برای بهبود امنیت انتقال داده ها از SSL / TLS استفاده می کند. این بهبود در امنیت داده ها به معنی کاهش خطرات امنیتی و حفاظت از کاربران است.
👍11🔥2
هوش مصنوعی GPT-4 به طور قابل توجهی بزرگتر از نسخه GPT-3 است و تخمین زده میشود که با بیش از 100 تریلیون پارامتر نسبت به 175 میلیارد پارامتر GPT-3 آموزش دیده باشد. GPT-4 در کارهایی مانند تولید زبان و ترجمه بهتر عمل می کند. در تشخیص صدا و ویدیو و همچنین تولید آن بسیار پیشرفته تر است و به نظر میرسد خیلی از مشاغل و تکنولوژی های امروز را به صورت جدی تحت تاثیر قرار دهد.
نسخه 4 امکان جمع آوری اطلاعات بیشتر و تحلیل بسیار دقیقتری را فراهم می کند. اما برای عموم در دسترس نیست و فقط از طریق یک API مخفی به گروه کوچکی از دانشگاهیان و توسعه دهندگان ارائه میشود.
نسخه 4 امکان جمع آوری اطلاعات بیشتر و تحلیل بسیار دقیقتری را فراهم می کند. اما برای عموم در دسترس نیست و فقط از طریق یک API مخفی به گروه کوچکی از دانشگاهیان و توسعه دهندگان ارائه میشود.
👍9
چگونه کیفیت کدهای سی شارپ را بالاتر ببریم؟
https://www.aparat.com/v/tdaVX
https://t.me/one_programmer/168
https://www.aparat.com/v/tdaVX
https://t.me/one_programmer/168
❤4👍3🔥3
WebGPU یک API گرافیکی است که برای دسترسی به قدرت پردازش گرافیکی سیستمهای در مرورگر طراحی شده است. این API از طریق JavaScript قابل دسترسی است و به توسعهدهندگان اجازه میدهد تا برنامههای گرافیکی پیشرفته را در مرورگرها اجرا کنند.
کتابخانههایی مانند Three.js و Babylon.js از WebGPU پشتیبانی میکنند.
به تازگی گوگل در کنفرانس I/O 2023 اعلام کرده است که این قابلیت در کروم فعال شده و پشتیبانی میشود.
در کنفرانس Google I/O اعلام شد که WebGPU به برنامه های وب روی تلفن همراه یا لپتاپ امکان استفاده مستقیمتر از نرم افزار های هوش مصنوعی را میدهد.
این ارتقاء می تواند در دامنه گسترده ای از برنامه ها و اپ ها مورد استفاده قرار گیرد. مت ودل، رهبر توسعه دهندگان Chrome می گوید که "WebGPU وب را آماده هوش مصنوعی می کند".
اجرای هوش مصنوعی به صورت محلی روی دستگاه هایی مانند تلفن همراه و لپتاپ باعث کم شدن مشکلات پهنای باند شبکه میوشد و کنترل بیشتر بر روی داده ها خصوصی را فراهم میکند.
کتابخانههایی مانند Three.js و Babylon.js از WebGPU پشتیبانی میکنند.
به تازگی گوگل در کنفرانس I/O 2023 اعلام کرده است که این قابلیت در کروم فعال شده و پشتیبانی میشود.
در کنفرانس Google I/O اعلام شد که WebGPU به برنامه های وب روی تلفن همراه یا لپتاپ امکان استفاده مستقیمتر از نرم افزار های هوش مصنوعی را میدهد.
این ارتقاء می تواند در دامنه گسترده ای از برنامه ها و اپ ها مورد استفاده قرار گیرد. مت ودل، رهبر توسعه دهندگان Chrome می گوید که "WebGPU وب را آماده هوش مصنوعی می کند".
اجرای هوش مصنوعی به صورت محلی روی دستگاه هایی مانند تلفن همراه و لپتاپ باعث کم شدن مشکلات پهنای باند شبکه میوشد و کنترل بیشتر بر روی داده ها خصوصی را فراهم میکند.
👍12
HTTP/3 پروتکلی است که برای جایگزینی HTTP/2 طراحی شده است. این پروتکل به کمک QUIC اجرا می شود و از پروتکل UDP برای ارسال داده ها استفاده می کند.
سه مزیت اصلی HTTP/3 نسبت به HTTP/2 :
1. کاهش تاخیر در شروع ارتباط:
در HTTP/2، برای شروع هر ارتباط، باید یک دستورالعمل (Handshake) انجام شود که این عمل ممکن است برای برقراری ارتباط اولیه بین کلاینت و سرور زمان زیادی بگیرد. با استفاده از QUIC، تاخیر در شروع ارتباط به صورت قابل توجهی کاهش پیدا می کند.
2. ایمنی و امنیت بیشتر:
HTTP/3 برای ارتباط با TLS 1.3 طراحی شده است و امنیت بیشتری دارد. در این روش فرایند رمزگذاری بهینه تر شده که باعث کاهش تاخیر و افزایش کارایی می شود.
3. ارتباط پایدارتر:
در HTTP/2، اگر بسته هایی هنگام انتقال از بین روند، کلیه بسته های بعدی در صف انتظار قرار می گیرند تا بسته های گمشده دوباره فرستاده شوند. در HTTP/3، از الگوریتم 'retransmission' استفاده می شود که امکان ارسال بسته های گمشده را به صورت همزمان با بسته های دیگر فراهم می کند که باعث بهبود کیفیت ارتباط و کاهش تاخیر در انتقال داده ها می شود.
سه مزیت اصلی HTTP/3 نسبت به HTTP/2 :
1. کاهش تاخیر در شروع ارتباط:
در HTTP/2، برای شروع هر ارتباط، باید یک دستورالعمل (Handshake) انجام شود که این عمل ممکن است برای برقراری ارتباط اولیه بین کلاینت و سرور زمان زیادی بگیرد. با استفاده از QUIC، تاخیر در شروع ارتباط به صورت قابل توجهی کاهش پیدا می کند.
2. ایمنی و امنیت بیشتر:
HTTP/3 برای ارتباط با TLS 1.3 طراحی شده است و امنیت بیشتری دارد. در این روش فرایند رمزگذاری بهینه تر شده که باعث کاهش تاخیر و افزایش کارایی می شود.
3. ارتباط پایدارتر:
در HTTP/2، اگر بسته هایی هنگام انتقال از بین روند، کلیه بسته های بعدی در صف انتظار قرار می گیرند تا بسته های گمشده دوباره فرستاده شوند. در HTTP/3، از الگوریتم 'retransmission' استفاده می شود که امکان ارسال بسته های گمشده را به صورت همزمان با بسته های دیگر فراهم می کند که باعث بهبود کیفیت ارتباط و کاهش تاخیر در انتقال داده ها می شود.
👍20
Nginx یک وب سرویس قدرتمند و محبوب است که امکان مقیاس پذیری افقی و عمودی سریع را فراهم می کند.
با توزیع بار، مدیریت توزیع ترافیک و استفاده از پراکسی معکوس، می توانید سایت خود را به راحتی مقیاس پذیر کنید و همچنین بار ترافیک را به صورت موازی بین سرورهای مختلف تقسیم کنید.
https://aparat.com/v/5oQkx
با توزیع بار، مدیریت توزیع ترافیک و استفاده از پراکسی معکوس، می توانید سایت خود را به راحتی مقیاس پذیر کنید و همچنین بار ترافیک را به صورت موازی بین سرورهای مختلف تقسیم کنید.
https://aparat.com/v/5oQkx
👍6🔥1
بارد یک چتبات LLM است که توسط هوش مصنوعی گوگل توسعه یافته است. این مدل بر روی مجموعه دادههای بزرگی از متون و کدها آموزش دیده است و قادر است متن تولید کند. زبانها را به هم ترجمه کند و انواع مختلفی از محتوای خلاقانه و پاسخ به سوالات تولید کند.
بارد هنوز در حال توسعه است، اما پتانسیل تبدیل شدن به یک ابزار قدرتمند برای ارتباط، خلاقیت و یادگیری را دارد.
در حال حاضر بارد قادر به درک زبان نیست و نمی توانید با زبان فارسی با آن ارتباط برقرار کنید.
بنا به گفته بسیاری گوگل در بازی هوش مصنوعی عقب است و پر کردن این فاصله در دنیایی که هر روز با شتاب بیشتری به سمت توسعه هوش مصنوعی میرود سخت به نظر میرسد.
می توانید از طریق آدرس زیر از بارد استفاده کنید:
https://bard.google.com
بارد هنوز در حال توسعه است، اما پتانسیل تبدیل شدن به یک ابزار قدرتمند برای ارتباط، خلاقیت و یادگیری را دارد.
در حال حاضر بارد قادر به درک زبان نیست و نمی توانید با زبان فارسی با آن ارتباط برقرار کنید.
بنا به گفته بسیاری گوگل در بازی هوش مصنوعی عقب است و پر کردن این فاصله در دنیایی که هر روز با شتاب بیشتری به سمت توسعه هوش مصنوعی میرود سخت به نظر میرسد.
می توانید از طریق آدرس زیر از بارد استفاده کنید:
https://bard.google.com
👍6❤1
چرا Type-Safety در CLR مهم است؟
یکی از قابلیت های اصلی که Common Language Runtime در دات نت فراهم می کند Type-Safety است.
امنیت نوع یا Type-Safety تضمین میکند که متغیرها در خطوط برنامه دارای نوع متغیر همسان یا سازگار باهم باشند. در این حالت CLR در صورت عدم مطابقت بین نوع متغیرها از اجرای برنامه جلوگیری میکند تا با این روش درستی اجرای برنامه را تضمین کند.
امنیت نوع با جلوگیری از دسترسی غیرمجاز یا تغییر خانه های حافظه، به امنیت حافظه کمک میکند. در CLR، همه اشیاء به نوع خود مرتبط میشوند و در زمان اجرا صحت نوع چک میشود. این کار از خطاهای متداول برنامهنویسی مانند سرریز بافر، استثناء null و عدم تطابق نوع جلوگیری میکند. هر کدام از این موارد میتواند به آسیبپذیریهای امنیتی، کرشها یا رفتار غیرقابل پیشبینی ختم شود.
مثلا درحملات type confusion کد مخرب سعی میکند با بهرهبرداری از اشیاء با نوع ضعیف یا نادرست داده های برنامه را دستکاری کند و رفتار آن را تغییر دهد.
با اجرای صحت نوع در CLR امکان این نوع آسیبپذیریهایی در زبانهای دات نت کمتر میشود.
یکی از قابلیت های اصلی که Common Language Runtime در دات نت فراهم می کند Type-Safety است.
امنیت نوع یا Type-Safety تضمین میکند که متغیرها در خطوط برنامه دارای نوع متغیر همسان یا سازگار باهم باشند. در این حالت CLR در صورت عدم مطابقت بین نوع متغیرها از اجرای برنامه جلوگیری میکند تا با این روش درستی اجرای برنامه را تضمین کند.
امنیت نوع با جلوگیری از دسترسی غیرمجاز یا تغییر خانه های حافظه، به امنیت حافظه کمک میکند. در CLR، همه اشیاء به نوع خود مرتبط میشوند و در زمان اجرا صحت نوع چک میشود. این کار از خطاهای متداول برنامهنویسی مانند سرریز بافر، استثناء null و عدم تطابق نوع جلوگیری میکند. هر کدام از این موارد میتواند به آسیبپذیریهای امنیتی، کرشها یا رفتار غیرقابل پیشبینی ختم شود.
مثلا درحملات type confusion کد مخرب سعی میکند با بهرهبرداری از اشیاء با نوع ضعیف یا نادرست داده های برنامه را دستکاری کند و رفتار آن را تغییر دهد.
با اجرای صحت نوع در CLR امکان این نوع آسیبپذیریهایی در زبانهای دات نت کمتر میشود.
👍17🔥2
چرا به آن x86 میگویند؟
اصطلاح "x86" از روش نامگذاری استفاده شده برای میکروپرسسورهای اینتل بدست آمده است. میکروپرسسور اینتل 8086 در سال ۱۹۷۸ عرضه شد و اولین میکروپرسسور ۱۶ بیتی در معماری x86 اینتل بود. نسلهای بعدی پردازندهها، از جمله اینتل 80286 و اینتل 80386 و ... ، همچنان از روش نامگذاری "۸۶" استفاده میکردند.
با گذر زمان، اصطلاح "x86" به یک روش معمول برای اشاره به خانوادهای از پردازندهها که سازگار با اینتل 8086 اصلی بودند، تبدیل شد. هرچند که معماری از ۱۶ بیتی فراتر رفته و شامل نسخههای ۳۲ بیتی (IA-32) و ۶۴ بیتی (x86-64) شده است، اصطلاح "x86" به عنوان اختصاری برای این خانواده از پردازندهها و معماریهای مرتبط با آن همچنان به کار میرود.
اصطلاح "x86" اغلب به طور خاص به نسخه ۳۲ بیتی معماری x86 اشاره دارد. نسخه ۶۴ بیتی این معماری که با نام AMD64 توسط AMD معرفی شد و سپس توسط اینتل با نام Intel 64 پذیرفته شد، به طور معمول به عنوان "x86-64" یا "x64" شناخته میشود.
اصطلاح "x86" از روش نامگذاری استفاده شده برای میکروپرسسورهای اینتل بدست آمده است. میکروپرسسور اینتل 8086 در سال ۱۹۷۸ عرضه شد و اولین میکروپرسسور ۱۶ بیتی در معماری x86 اینتل بود. نسلهای بعدی پردازندهها، از جمله اینتل 80286 و اینتل 80386 و ... ، همچنان از روش نامگذاری "۸۶" استفاده میکردند.
با گذر زمان، اصطلاح "x86" به یک روش معمول برای اشاره به خانوادهای از پردازندهها که سازگار با اینتل 8086 اصلی بودند، تبدیل شد. هرچند که معماری از ۱۶ بیتی فراتر رفته و شامل نسخههای ۳۲ بیتی (IA-32) و ۶۴ بیتی (x86-64) شده است، اصطلاح "x86" به عنوان اختصاری برای این خانواده از پردازندهها و معماریهای مرتبط با آن همچنان به کار میرود.
اصطلاح "x86" اغلب به طور خاص به نسخه ۳۲ بیتی معماری x86 اشاره دارد. نسخه ۶۴ بیتی این معماری که با نام AMD64 توسط AMD معرفی شد و سپس توسط اینتل با نام Intel 64 پذیرفته شد، به طور معمول به عنوان "x86-64" یا "x64" شناخته میشود.
👍25❤4
آدرس فایل در دات نت برای سازگاری با لینوکس و داکر
فریم ورک دات نت cross-platform است و می توانید سایت یا اپ خود را در لینوکس یا در داکر مبنتنی بر لینوکس اجرا کنید. نکته مهم توجه به آدرسی دهی فایلها است که بین ویندوز و لینوکس فرق دارد و می تواند بعد از انتشار روی سرور لینوکس برای شما دردسر ساز شود.
1- از
هیچوقت آدرس فایل ها را با
2- از آدرس دهی نسبی استفاده کنید:
موقعیت فایل را بر اساس محل قرار گرفتن اپلیکیشن مشخص کنید و از آدرس دهی مطلق که به درایو یا مسیر مشخصی روی سیستم عامل اشاره می کند استفاده نکنید. در
3- برای دسترسی به آدرس فولدرهای خاص از Enviroment Variables استفاده کنید:
با کمک Environment.SpecialFolder می توانید به مسیر فولدهایی
فریم ورک دات نت cross-platform است و می توانید سایت یا اپ خود را در لینوکس یا در داکر مبنتنی بر لینوکس اجرا کنید. نکته مهم توجه به آدرسی دهی فایلها است که بین ویندوز و لینوکس فرق دارد و می تواند بعد از انتشار روی سرور لینوکس برای شما دردسر ساز شود.
1- از
Path.Combine
استفاده کنید :هیچوقت آدرس فایل ها را با
+
ترکیب نکنید. آدرس دهی در ویندوز با \
و در لینوکس با /
انجام میشود و تابع Combine در فضای نامی System.IO
می تواند بر اساس سیستم عامل جاری جدا کننده درست را در مسیر فایل قرار دهد. 2- از آدرس دهی نسبی استفاده کنید:
موقعیت فایل را بر اساس محل قرار گرفتن اپلیکیشن مشخص کنید و از آدرس دهی مطلق که به درایو یا مسیر مشخصی روی سیستم عامل اشاره می کند استفاده نکنید. در
ASP.NET Core
می توانید از اینترفیس IWebHostEnvironment استفاده کنید.3- برای دسترسی به آدرس فولدرهای خاص از Enviroment Variables استفاده کنید:
با کمک Environment.SpecialFolder می توانید به مسیر فولدهایی
MyDocuments
یا ApplicationData
در سیستم عامل ویندوز و لینوکس دسترسی داشته باشید.
👍40🔥3
چرا از File-Scoped Namespace استفاده کنیم؟
از
با کمک این قابلیت می توانید فضای نامی را بدون
این قابلیت با حذف یک مرحله فاصله گذاری از نویز تصویری کدنویسی کم می کند و خواندن آن را ساده تر می کند.
بهتر است در کد نویسی از این قابلیت به صورت پیش فرض استفاده کنید و بعد از آپدیت به دات نت 6 کلاس های خود را به این حالت بروز رسانی کنید.
می توانید با Options در Visual Studio برای کلاسهای جدید گزینه پیش فرض را به File-Scoped تغییر دهید.
از
#C
نسخه 10 قابلیت تعریف فضای نامی در فایل اضافه شده است. با کمک این قابلیت می توانید فضای نامی را بدون
{ ... }
و فقط با نوشتن یک خط در بالای فایل تعریف کنید. این قابلیت با حذف یک مرحله فاصله گذاری از نویز تصویری کدنویسی کم می کند و خواندن آن را ساده تر می کند.
بهتر است در کد نویسی از این قابلیت به صورت پیش فرض استفاده کنید و بعد از آپدیت به دات نت 6 کلاس های خود را به این حالت بروز رسانی کنید.
می توانید با Options در Visual Studio برای کلاسهای جدید گزینه پیش فرض را به File-Scoped تغییر دهید.
👍18❤1🔥1
قابلیت Alias any type در سی شارپ 12
قابلیت Alias یا قرار دادن اسم مستعار برای using ها از نسخه اول سی شارپ وجود داشته است. اما از نسخه 12 این قابلیت شامل Type ها هم میشود.
می توانید برای هر Type یک Alias تعریف کنید تا کد شما بیشتر بیانگر کاری باشد که انجام میدهد. مثلا اگر یک int در واقع شمارنده است یا یک String در واقع یک آدرس است می توانید با استفاده از using این موضوع را مشخص کنید.
#Build2023
قابلیت Alias یا قرار دادن اسم مستعار برای using ها از نسخه اول سی شارپ وجود داشته است. اما از نسخه 12 این قابلیت شامل Type ها هم میشود.
می توانید برای هر Type یک Alias تعریف کنید تا کد شما بیشتر بیانگر کاری باشد که انجام میدهد. مثلا اگر یک int در واقع شمارنده است یا یک String در واقع یک آدرس است می توانید با استفاده از using این موضوع را مشخص کنید.
#Build2023
👍25❤6👎1
قابلیت Collection Literals در سی شارپ 12
برای پر کردن ورودی کالکشن ها می توانید بجای استفاده از تایپ اصلی مانند:
در نسخه های قبلی
با قابلیت جدیدتر Collection Literals کد خوانا تر می شود و دیگر حتی نیاز به نوشتن عبارت new نیست.
#Build2023
برای پر کردن ورودی کالکشن ها می توانید بجای استفاده از تایپ اصلی مانند:
new List<int> {1,5,7}از عبارت
[1,5,7]
استفاده کنید.در نسخه های قبلی
#C
می توانستید از نوشتن تایپ صرف نظر کنید مثلا بنویسید:new() {1,5,7}و کامپایلر سی شارپ می توانست با دنبال کردن مسیر اجرا برنامه خودش تشخیص دهد که چه چیزی قرار است new شود. این قابلیت امکان می داد که کد راحت تر قابل تغییر باشد. مثلا اگر بعدا بجای List می خواستید از یک آرایه استفاده کنید لازم نبود هر جا از متد استفاده شده است تغییر کند.
با قابلیت جدیدتر Collection Literals کد خوانا تر می شود و دیگر حتی نیاز به نوشتن عبارت new نیست.
#Build2023
❤29👍12