Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Implementation difference in C# [duplicate]

Tags:

c#

interface

I am a learner of C#.Can you please explain me what is the difference between assigning a collection to interface.

I see some examples,initialize

List<int> few = new List<int>() { 12, 123, 211, 200 }; 

But some assign collection to interface

IList<int> someList=new List<int>(){12,23,56,78};

When would we need the later one?.Pros and cons with examples will educate me well ,if you kindly provide the one.

like image 332
Kalai Avatar asked Feb 19 '26 08:02

Kalai


1 Answers

Typically you should choose to expose IList rather than List in a public interface, while it would make little difference if the list is used only inside a method:

public IList<int> GetSomeInts()
{
    List<int> result = new List<int>() { 12, 123, 211, 200 };
    return result;
}

This way you decouple the public interface from the concrete type that you actually use internally in your method. You could for instance choose to replace the internal use of List<int> with using a Collection<int> instead without affecting the public interface or users of it, since both implement IList<T>.

like image 65
Fredrik Mörk Avatar answered Feb 20 '26 21:02

Fredrik Mörk



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!