Web Devs
643 subscribers
218 photos
22 videos
17 files
233 links
Articles, News, Jokes, Quotes, Back-End and UI/UX for web developers.
Github : https://github.com/fullStackDevsGroup
Advertising: @adsfullStackDevs
Download Telegram
#Indexer
#Params
#cSharp

🔰Indexer & Params IN C#

🔸ایندکسر ها در سی شارپ این اجازه را به اشیاء کلاس ها و struct ها میدهند تا مانند آرایه ها index گذاری شوند .
🔹از کاربردهای مهمی که میتوان از indexer ها استفاده کرد. encapsulate کردن کالکشن و یا یک آرایه داخلی در درون یک شء میباشد.
🔰Prams
🔸در c# هنگامی که پارامتر یک متد تعداد نامشخصی آرگومان (از یک نوع تایپ) دارد از کلمه کلیدی params برای تعریف آن پارامتر استفاده میکنیم. کامپایلر با params مانند یک temporary array برخورد میکند و از آن برای دریافت پارامترهای پاس داده شده
توسط caller استفاده میکند.

❇️ در ادامه تکنیکی را معرفی میکنیم که به عنوان یک C# Developer خوب است بدانید.

🔹Indexers can use params

🔸همه ما روش معقول و معمول استفاده از ایندکسر ها را میدانیم و مثال های فراوانی که از کاربردهای آن ارائه شده قالبا و تمام به یک شکل میباشد
در این پست، کاربردی جالب و ترکیبی از ایندکسر و params را معرفی میکنیم که امیدواریم مفید واقع شود.
▪️تعریف یک ایندکسر :
public string this[string key] {
get { return internalDictionary[key]; }
}

🔹اما ایا میدانید می توانیم از params هم در هنگام تعریف ایندکسر استفاده کنیم ؟
و ایندکسر خود را بدین شکل بنویسیم

public IEnumerable<string> this[params string[] keys] {
get { return keys.Select(key => internalDictionary[key]).AsEnumerable(); }
}


🔸همچنین میتوانید در یک کلاس از هر دو شکل تعریف ایندکسر در کنار هم استفاده کنید و بسته به تعداد arg های پاس داده شده خروجی متفاوتی دریافت میکنید.

مشاهده نمونه سورس.(حتما بررسی کنید😉)

@fullStackDevs