"

اینترفیس مهم در سی شارپ

تیم تحریریه 1403/12/10 0 223
لینک کوتاه https://zoheirsoftware.com/z/396e44f1e |
اینترفیس مهم در سی شارپ,ویژگی های اینترفیس <IEnumerable<T,ویژگی های اینترفیس <IList<T

 اینترفیس‌های مهم در سی‌شارپ

در سی‌شارپ، اینترفیس‌ها یکی از اجزای کلیدی در طراحی نرم‌افزارهای شی‌گرا هستند که امکان تعریف رفتارهای مشترک برای کلاس‌های مختلف را فراهم می‌کنند.

اینترفیس‌ها شامل متدها، خصوصیات، ایندکسرها و رویدادها هستند، اما پیاده‌سازی آن‌ها بر عهده کلاس‌هایی است که از اینترفیس استفاده می‌کنند.

استفاده از اینترفیس‌ها باعث افزایش قابلیت انعطاف‌پذیری و کاهش وابستگی بین کلاس‌ها می‌شود.

برخی از اینترفیس‌های پرکاربرد در سی‌شارپ شامل <IEnumerable<T>، ICollection<T و <IList<T هستند که برای مدیریت و پیمایش مجموعه‌های داده استفاده می‌شوند.

هر یک از این اینترفیس‌ها وظایف خاصی را در مدیریت داده‌های مجموعه‌ای (Collections) بر عهده دارند.

به عنوان مثال، <IEnumerable<T امکان پیمایش ساده مجموعه‌ها را فراهم می‌کند، در حالی که <ICollection<T علاوه بر پیمایش، قابلیت افزودن، حذف و بررسی تعداد عناصر مجموعه را نیز دارد.

از سوی دیگر، <IList<T امکان دسترسی مستقیم به عناصر مجموعه با استفاده از ایندکس را فراهم می‌کند.

انتخاب اینترفیس مناسب، تأثیر مستقیمی بر بهینه‌سازی عملکرد و قابلیت نگهداری کد دارد.

 

 اینترفیس‌های مهم در سی‌شارپ

ویژگی های اینترفیس <IEnumerable<T

<IEnumerable<T یکی از اساسی‌ترین اینترفیس‌ها در فضای نام System.Collections.Generic است که امکان پیمایش (Iteration) روی مجموعه‌ای از داده‌ها را فراهم می‌کند.

 ویژگی‌ها:

  • فقط خواندنی است (Read-Only).

  •  برای پیمایش مجموعه‌ای از داده‌ها بدون تغییر آن‌ها استفاده می‌شود.

  •  شامل متد ()GetEnumerator است که یک <IEnumerator<T را برمی‌گرداند.

  •  قابلیت استفاده در foreach.

 مثال: پیاده‌سازی <IEnumerable<T در یک کلاس سفارشی

using System;
using System.Collections;
using System.Collections.Generic;

public class MyCollection<T> : IEnumerable<T>
{
    private List<T> items = new List<T>();

    public void Add(T item)
    {
        items.Add(item);
    }

    public IEnumerator<T> GetEnumerator()
    {
        return items.GetEnumerator();
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
}

class Program
{
    static void Main()
    {
        var numbers = new MyCollection<int>();
        numbers.Add(10);
        numbers.Add(20);
        numbers.Add(30);

        foreach (var num in numbers)
        {
            Console.WriteLine(num);
        }
    }
}

خروجی

10  
20  
30  


 در این مثال، کلاس <MyCollection<T از <IEnumerable<T پیروی می‌کند و قابلیت پیمایش را فراهم می‌کند.

 

 

 

آیا به دنبال یک فرصت عالی برای یادگیری برنامه‌نویسی هستید؟ 🚀

با دوره آموزشی سی‌شارپ ما، شما می‌توانید مهارت‌های خود را به سطح جدیدی ارتقا دهید! این دوره به‌طور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامه‌نویسی سی‌شارپ پیش بروید.

👨‍🏫 چرا دوره ما را انتخاب کنید؟

  • محتوای جامع و عملی: با پروژه‌های واقعی و تمرینات عملی، یادگیری را به تجربه‌ای جذاب تبدیل کنید.
  • مدرس مجرب: از تجربه و دانش مدرس حرفه‌ای بهره‌مند شوید که شما را در هر مرحله از یادگیری راهنمایی می‌کنند.
  • پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
  • دسترسی مادام‌العمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، می‌توانید به آن مراجعه کنید.

💡 فرصت را از دست ندهید!

بایادگیری سی‌شارپ، می‌توانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژه‌های جذاب و چالش‌برانگیز شرکت کنید.

همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده‌ای روشن‌تر بردارید!

شرکت در دوره آموزش برنامه نویسی سی شارپ

 

 

ویژگی های اینترفیس ICollection

ICollection یک سطح بالاتر از IEnumerable است و علاوه بر قابلیت پیمایش، عملیات مدیریتی مثل افزودن، حذف و بررسی اندازه مجموعه را فراهم می‌کند.

 ویژگی‌ها:

  •  شامل متدهای ()Add() ، Remove()، Contains و ()Count است.

  • از IEnumerable مشتق شده و قابلیت پیمایش دارد.

  • SyncRoot و IsSynchronized برای مدیریت چند نخی (Thread Safety) را فراهم می‌کند.

مثال: پیاده‌سازی ICollection در کلاس سفارشی

using System;
using System.Collections;
using System.Collections.Generic;

public class MyCollection : ICollection<int>
{
    private List<int> items = new List<int>();

    public int Count => items.Count;
    public bool IsReadOnly => false;

    public void Add(int item)
    {
        items.Add(item);
    }

    public bool Remove(int item)
    {
        return items.Remove(item);
    }

    public void Clear()
    {
        items.Clear();
    }

    public bool Contains(int item)
    {
        return items.Contains(item);
    }

    public void CopyTo(int[] array, int arrayIndex)
    {
        items.CopyTo(array, arrayIndex);
    }

    public IEnumerator<int> GetEnumerator()
    {
        return items.GetEnumerator();
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
}

class Program
{
    static void Main()
    {
        var collection = new MyCollection();
        collection.Add(5);
        collection.Add(10);
        collection.Add(15);

        Console.WriteLine($"Count: {collection.Count}");

        collection.Remove(10);

        Console.WriteLine($"Contains 10: {collection.Contains(10)}");

        foreach (var item in collection)
        {
            Console.WriteLine(item);
        }
    }
}


 خروجی

Count: 3  
Contains 10: False  
5  
15

  
 در این مثال، <ICollection<int پیاده‌سازی شده و شامل متدهای افزودن، حذف، بررسی و پیمایش داده‌ها است.

 ویژگی های اینترفیس ICollection

 

 

ویژگی های اینترفیس <ICollection<T

<ICollection<T نسخه جنریک ICollection است که تایپ مشخصی (T) را پشتیبانی می‌کند و از <IEnumerable<T مشتق شده است.

ویژگی‌ها:

  • شامل متدهای ()Add()، Remove()، Contains()، Clear و ()CopyTo.

  • قابلیت خواندن اندازه مجموعه (Count).

  • پشتیبانی از پیمایش (()GetEnumerator).

 

 اینترفیس <ICollection<T در کلاس‌های لیست‌ها (<List<T)، دیکشنری‌ها (<Dictionary<K,V) و مجموعه‌ها (<HashSet<T) استفاده می‌شود.

 مثال: استفاده از <ICollection<T> با <List<T

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        ICollection<string> names = new List<string>();

        names.Add("Ali");
        names.Add("Sara");
        names.Add("Reza");

        Console.WriteLine($"Count: {names.Count}");
        Console.WriteLine($"Contains 'Sara': {names.Contains("Sara")}");

        names.Remove("Sara");

        Console.WriteLine("All Names:");
        foreach (var name in names)
        {
            Console.WriteLine(name);
        }
    }
}


 خروجی

 

Count: 3  
Contains 'Sara': True  
All Names:  
Ali  
Reza  



در این مثال، <ICollection<T برای مدیریت مجموعه‌ای از اسامی استفاده شده است.

ویژگی های اینترفیس <IList<T

<IList<T از <ICollection<T مشتق شده و علاوه بر عملیات ()Add و ()Remove، امکان دسترسی مستقیم به عناصر مجموعه از طریق ایندکس ([ ]) را فراهم می‌کند.

 ویژگی‌ها:

  • قابلیت دسترسی به عناصر با ایندکس (list[0]).

  •  شامل متدهای ()Insert()، RemoveAt و ()IndexOf.

  • خواندن و تغییر مقدار عناصر مجموعه.

مثال: استفاده از <IList<T

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        IList<int> numbers = new List<int> { 10, 20, 30 };

        numbers.Insert(1, 15); // افزودن مقدار در موقعیت مشخص
        numbers.RemoveAt(2);   // حذف مقدار از موقعیت مشخص

        Console.WriteLine($"First item: {numbers[0]}");

        numbers[0] = 100; // تغییر مقدار یک عنصر

        Console.WriteLine("All Numbers:");
        foreach (var num in numbers)
        {
            Console.WriteLine(num);
        }
    }
}


 خروجی

 

First item: 10  
All Numbers:  
100  
15  
30  


در این مثال، <IList<T قابلیت دسترسی با ایندکس و تغییر مقادیر را فراهم کرده است.

 

 

ویژگی های اینترفیس <IList<T

 

دوره های مرتبط
آموزش برنامه نویسی سی شارپ,آموزش پروژه محور سی شارپ,آموزش مقدماتی تا پیشرفته سی شارپ,طراحی نرم افزار تحت ویندوز

آموزش برنامه نویسی سی شارپ

زبان شی گرایی حرفه ای سی شارپ یک زبان قدرتمند برای طراحی نرم افزار به شمار میرود.

999,000 تومان

2.9k بازدید

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.