How to refer to the locations in lower depths of a waterbody (such birli a lake)? more hot questions
Adidaki şekilde Kisi isminde oluşturduğumuz derslikı oluşturduğumuz liste nesnesine ekleyelim.
I think that, ideally, the .Kupkuru Framework would include a static sorting method that accepts an IList, but the next best thing is to create your own extension method. It's derece too hard to create a couple of methods that will allow you to sort an IList kakım you would a List.
All concepts are basically stated in most of the answers above regarding why use interface over concrete implementations.
Typically, a good approach is to use IList in your public facing API (when appropriate, and list semantics are needed), and then List internally to implement the API. This allows you to change to a different implementation of IList without breaking code that uses your class.
Örneğin, adidaki kodda bir IAnimal tipinde bir değişebilir tanımladım ve bu bileğteamülkene Dog ve Cat nesneleri atadım.
StuartLCStuartLC 106k1818 gold badges216216 silver badges289289 bronze badges Add a comment
However using a concrete implementation and List on a class that changes, could cause the calling code to need to be changed birli well. This is because a class adhering to IList guarantees a certain behavior that is derece guaranteed by a concrete type using List. Also having the power to do something like modify the default implementation of List on a class Implementing C# IList Nasıl Kullanılır IList for say the .Add, .Remove or any other IList method gives the developer a lot
; being aware of the definition of the interface ie. all abstract methods that are there to be implemented by any class C# IList Nedir inheriting the interface. so if some one makes a huge class of his own with several methods besides the ones he inherited from the interface for some addition functionality, C# IList Kullanımı and those are of no use to you, its better to use a reference to a subclass C# IList Nasıl Kullanılır (in this case the interface) and assign the concrete class object to it.
Then later if you decide to convert the actual data store from a List to a Dictionary and expose the dictionary keys bey the actual value for the property (I have had to do exactly this before). Then consumers who have come to expect that their changes will be reflected inside of your class will no longer have that capability. That's a big mesele! If you expose the List as an IEnumerable you gönül comfortably predict that your collection is not being modified externally. That is one of the powers of exposing List as any of the above interfaces.
Returning a read-only interface such bey IEnumerable is often the way to go for veri-retrieval methods. Your consumer hayat project it into a richer type bey-needed.
And, if you used a generic implementation, you would only be able to use a method that works for any object only with objects of a C# IList Kullanımı specific type.
There is a complication though that dynamic emanet't see explicit implementations, so something kişi implement IList and IList-of-T and yet still be completely unusable from dynamic.