>  기사  >  백엔드 개발  >  C#에서 IList와 List의 차이점에 대한 심층 분석

C#에서 IList와 List의 차이점에 대한 심층 분석

高洛峰
高洛峰원래의
2017-01-19 11:51:361325검색

코드를 작성할 때
IList IList11 =new List ();
List List11 =new List ();

에 대해 몇 가지 의문점이 있어서 검색해 보았습니다. 인터넷에서 많은 영감을 받아 저장했는데 일부 의견에 동의하지 않아서 빨간색 글꼴로 표시했습니다!

우선 IList 일반 인터페이스는 ICollection 일반 인터페이스의 자손이며 모든 일반 목록의 기본 인터페이스입니다.
모든 일반 유형에 대한 인터페이스일 뿐이며, 수집 데이터의 전달 수단으로만 사용된다면 실제로 IList가 해당 작업을 수행할 수 있어 편리하고 실용적인 방법이 많지 않습니다.
그러나 수집된 데이터를 처리하거나 데이터를 필터링하거나 정렬해야 하는 경우가 더 많습니다. 현재로서는 IList가 무력합니다.

1. 인터페이스 메서드만 사용하려는 경우에는 이 인터페이스를 구현하는 클래스의 다른 메서드와 필드를 가져오지 않으므로 공간을 효과적으로 절약할 수 있습니다. (하위 클래스는 상위 클래스를 상속하고 자체 속성과 메소드를 갖기 때문에 하위 클래스 NEW가 나온 후에 상위 클래스의 변수에 배치되거나 자체 유형의 변수에 배치되거나 존재해야 합니다. 그렇지 않은 경우 위아래로 변환하면 데이터가 손실됩니다. )

2. IList <>는 직접 구현해야 하는 일부 작업 메서드를 정의하는 인터페이스입니다. >는 IList <>

IList IList11 =new List ();
List List11 =new List ();

에 의해 정의된 메소드를 구현한 일반 클래스입니다. 운영 관점에서 볼 때 이 두 줄의 코드는 실제로 List 개체의 인스턴스를 생성합니다. 즉, 해당 작업에는 차이가 없습니다.
이 작업을 저장하는 데 사용되는 반환 값 변수 유형이 다를 뿐입니다.
그래서 우리는 이 두 코드 줄의 목적이 다르다는 것을 이해할 수 있습니다.
List List11 =new List ();
List를 생성하고 싶은데, List의 기능을 이용하여 관련 작업을 수행해야 합니다.
그리고 IList IList11 =new List ();
IList 인터페이스를 기반으로 개체의 인스턴스를 만들고 싶지만 이 인터페이스는 List로 구현됩니다. 따라서 IList 인터페이스에 지정된 함수를 사용하기를 바랍니다.

C#에서 IList와 List의 차이점을 더 자세히 분석하려면 PHP 중국어 웹사이트를 참고하세요.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:C# List 사용법 요약다음 기사:C# List 사용법 요약