@one_programmer
ویژگیهای اضافه شده به 7 #C
👉 https://blogs.msdn.microsoft.com/dotnet/2017/03/09/new-features-in-c-7-0/
@one_programmer
ویژگیهای اضافه شده به 7 #C
👉 https://blogs.msdn.microsoft.com/dotnet/2017/03/09/new-features-in-c-7-0/
@one_programmer
@one_programmer
یکی از ویژگی های جدید 7 #C
C# 7 - Local Functions
توابع محلی هست که امکان تعریف یک تابع را درون یک متد، فراهم میکنند. هدف آنها تدارک توابعی کمکی است که به سایر قسمتهای کلاس مرتبط نمیشوند. برای مثال اگر متدی نیاز به کار با یک private method دیگر را دارد و این متد خصوصی در جای دیگری استفاده نمیشود، میتوان جهت بالابردن خوانایی برنامه و سهولت یافتن متد مرتبط، این متد خصوصی را تبدیل به یک تابع محلی، درون همان متد کرد.
static void Main(string[] args)
{
int Add(int a, int b)
{
return a + b;
}
Console.WriteLine(Add(3, 4));
}
مزیت کار با local functions نسبت به Func delegates محلی
در قطعه کد فوق، کار انجام شده صرفا استفادهی از یک Syntax جدید نیست؛ بلکه از لحاظ کارآیی نیز سربار کمتری را به همراه دارد. زمانیکه Func Delegates تعریف میشوند، کار ایجاد یک anonymous type، وهله سازی و فراخوانی آنها توسط کامپایلر صورت میگیرد. اما حین کار با توابع محلی، کامپایلر با یک متد استاندارد سروکار دارد و هیچکدام از مراحل یاد شده و سربارهای آنها رخ نمیدهند (هیچگونه GC allocation ایی نخواهیم داشت). به علاوه اینبار کامپایلر فرصت in-line تعریف کردن متد را به نحو بهتری یافته و به این ترتیب کار سوئیچ بین متدهای مختلف کاهش پیدا میکند که در نهایت سرعت برنامه را افزایش میدهند.
@one_programmer
یکی از ویژگی های جدید 7 #C
C# 7 - Local Functions
توابع محلی هست که امکان تعریف یک تابع را درون یک متد، فراهم میکنند. هدف آنها تدارک توابعی کمکی است که به سایر قسمتهای کلاس مرتبط نمیشوند. برای مثال اگر متدی نیاز به کار با یک private method دیگر را دارد و این متد خصوصی در جای دیگری استفاده نمیشود، میتوان جهت بالابردن خوانایی برنامه و سهولت یافتن متد مرتبط، این متد خصوصی را تبدیل به یک تابع محلی، درون همان متد کرد.
static void Main(string[] args)
{
int Add(int a, int b)
{
return a + b;
}
Console.WriteLine(Add(3, 4));
}
مزیت کار با local functions نسبت به Func delegates محلی
در قطعه کد فوق، کار انجام شده صرفا استفادهی از یک Syntax جدید نیست؛ بلکه از لحاظ کارآیی نیز سربار کمتری را به همراه دارد. زمانیکه Func Delegates تعریف میشوند، کار ایجاد یک anonymous type، وهله سازی و فراخوانی آنها توسط کامپایلر صورت میگیرد. اما حین کار با توابع محلی، کامپایلر با یک متد استاندارد سروکار دارد و هیچکدام از مراحل یاد شده و سربارهای آنها رخ نمیدهند (هیچگونه GC allocation ایی نخواهیم داشت). به علاوه اینبار کامپایلر فرصت in-line تعریف کردن متد را به نحو بهتری یافته و به این ترتیب کار سوئیچ بین متدهای مختلف کاهش پیدا میکند که در نهایت سرعت برنامه را افزایش میدهند.
@one_programmer
@one_programmer
امروز یه مطلب خوب و آموزنده رو براتون share کردم.
تفاوت بین پارامتر Out و Ref در #C
https://barnamenevisan.org/Articles/Article3757.html
@one_programmer
امروز یه مطلب خوب و آموزنده رو براتون share کردم.
تفاوت بین پارامتر Out و Ref در #C
https://barnamenevisan.org/Articles/Article3757.html
@one_programmer
barnamenevisan.org
تفاوت بین پارامتر Out و Ref در #C
چگونه از يك تابع بيش از يك خروجي دريافت كنيم؟ظاهرا به نظر مي رسد كه توابع فقط مي توانند يك خروجی داشته باشند و بلافاصله پس از فراخواني return كار تابع پايان يافته است. اما در سي شارپ دو كلمه ي كليدي به نام هاي ref و out اضافه شده اند كه اين امر را ممکن مي…
@one_programmer
آمار زبان هایی مثل go, php, python, #c جالبه
لینک پست: https://t.me/one_programmer/115
@one_programmer
آمار زبان هایی مثل go, php, python, #c جالبه
لینک پست: https://t.me/one_programmer/115
@one_programmer
@one_programmer
یک سری از مفاهیم به ظاهر ساده هستند که هر روز با اونها سروکار داریم، اما بهتره که درک دقیق تری نسبت بهشون داشته باشیم و هر چند وقت مروری روی اونها داشته باشیم. یک از این مفاهیم انواع داده ای هستند. انواع داده ای با توجه به نحوه ذخیره سازی در حافظه، در #C به دو نوع ReferenceTypes و ValueTypes تقسیم میشن. انواع مقداری از Stack تخصیص داده میشن و مستقیما حاوی دیتا هستند، بعد از تمام شدن scope که توی اون قرار دارند، از stack حذف میشن.اما انواع ارجاعی از Heap تخصیص داده میشن و آدرس مربوط به دیتا رو نگه می دارن. بعد از اتمام scope ای که توی اون قرار دارند، همچنان در حافظه باقی میمونن تا اینکه garbage collecto حذفشون کنه. توی این مقاله مفاهیم، نحوه ذخیره سازی و ارسال اونها به عنوان پارامتر بررسی شده.
https://vrgl.ir/G1nFf
@one_programmer
#vahid_tajari
یک سری از مفاهیم به ظاهر ساده هستند که هر روز با اونها سروکار داریم، اما بهتره که درک دقیق تری نسبت بهشون داشته باشیم و هر چند وقت مروری روی اونها داشته باشیم. یک از این مفاهیم انواع داده ای هستند. انواع داده ای با توجه به نحوه ذخیره سازی در حافظه، در #C به دو نوع ReferenceTypes و ValueTypes تقسیم میشن. انواع مقداری از Stack تخصیص داده میشن و مستقیما حاوی دیتا هستند، بعد از تمام شدن scope که توی اون قرار دارند، از stack حذف میشن.اما انواع ارجاعی از Heap تخصیص داده میشن و آدرس مربوط به دیتا رو نگه می دارن. بعد از اتمام scope ای که توی اون قرار دارند، همچنان در حافظه باقی میمونن تا اینکه garbage collecto حذفشون کنه. توی این مقاله مفاهیم، نحوه ذخیره سازی و ارسال اونها به عنوان پارامتر بررسی شده.
https://vrgl.ir/G1nFf
@one_programmer
#vahid_tajari
ویرگول
بررسی انواع مقداری Value Types و انواع ارجاعی Reference Types در #C
در سی شارپ انواع دادهای با توجه به نحوه ذخیرهسازی در حافظه به دو دستهی انواع مقداری و انواع ارجاعی تقسیم میشوند در این پست مفاهیم و ا…