나는 클래스 ArrayList
에서 방법 AddRange
를 사용하고 난 예를 발견 Queue
클래스는 인터페이스 ICollection
에서 상속받습니다. 전화 AddRange
에서 어떤 일이 일어나는지 설명하고 인터페이스 유형 ICollection
에 Queue
클래스 유형을 복사하십시오.인터페이스 ICollection에와 AddRange C#은/NET
-1
A
답변
0
AddRange
에 대한 매개 변수로 Queue
유형을 사용할 수 있으며, ICollection
이 매개 변수로 필요한 경우에도 마찬가지입니다. Queue
이 ICollection
에서 상속 되었기 때문에 작동합니다. 즉, ICollection
에있는 모든 메서드 (및 속성)가 포함되어 있으므로 Queue
은 여전히 ICollection
입니다.
또 다른 예 :
interface IBear
{
void Hunt();
void Sleep();
void Eat();
}
class Grizzly : IBear
{
public int Size { get; set; }
public int Weight { get; set; }
public void Eat()
{
//
}
public void Hunt()
{
//
}
public void Sleep()
{
//
}
}
class BearCave
{
private ArrayList bears;
public BearCave()
{
bears = new ArrayList();
}
public void AddBear(IBear bear)
{
bears.Add(bear);
}
}
메인 프로 그램 : 당신이 인터페이스 IBear
및 IBear
에서 상속 된 클래스 Grizzly
을 가지고이 작은 프로그램에서
class Program
{
static void Main(string[] args)
{
BearCave cave = new BearCave();
Grizzly grizzly = new Grizzly() { Size = 2, Weight = 150 };
cave.AddBear(grizzly);
}
}
. BearCave
클래스와 AddBear
메서드도 있으며 IBear
이 필요합니다. Grizzly
여전히 Bear
(IBear
) 때문에
Grizzly
BearCave
에 추가 할 수 있습니다.
관련 문제
- 1. ComboBox addRange
- 2. 는 AddRange
- 3. 추가 AddRange
- 4. 동적 addRange 구글 EmbeddedChart
- 5. T 수업에? AddRange ICollection?
- 6. AddRange null 예외 발생
- 7. 추가 레코드없이 AddRange 사용
- 8. BindableCollection <> AddRange slow
- 9. 한다 AddRange() 다음 코드에서 목록을
- 10. NFgsql AddRange 인덱스의 EF 코어
- 11. AddRange() 및 LINQ 복사 문제
- 12. C# : AddRange() 및 Lambda 식 결합
- 13. AddRange()는이 경우 ToList()보다 빠릅니까?
- 14. C# List <object> DBNull.Value의 AddRange
- 15. ListView SubItem [1]에서 시작하는 항목의 AddRange
- 16. OrderByDending before Before AddRange Linq 쿼리
- 17. List <T> .AddRange() 메서드는 어디에서 찾을 수 있습니까?
- 18. EF, AddRange, 컬렉션이 수정되었습니다. 열거 연산이 실행되지 않을 수 있습니다.
- 19. List to List - AddRange (IEnumerable) 작업을 수행 할 수 없습니다.
- 20. .NET 목록 <T> Concat 대 AddRange
- 21. Java에서 addAll() 또는 addRange() 메서드를 처음부터 만드는 방법은 무엇입니까?
- 22. AddRange() 메서드 linq 문에서 null 개체를 확인할 수있는 방법이 있습니까?
- 23. 인터페이스 상속 인터페이스
- 24. 인터페이스 구현 인터페이스 4
- 25. 인터페이스 컬렉션에 인터페이스 추가하기
- 26. 인터페이스 내에 인터페이스 구현
- 27. C 번호 : 인터페이스 인터페이스
- 28. 목록 <IJob> .AddRange (List <Job>) 작동하지 않는다
- 29. 인터페이스
- 30. 인터페이스
귀하의 질문을 이해할 수 없습니다. 그러면 ICollection의 요소가 새 목록에 하나씩 추가됩니다. – HimBromBeere
사이드 노트 : 더 이상'ArrayList'를 사용하지 말고 일반리스트'List'를 사용하십시오. –
나는이 기능을 잘 알고있다. 하지만 ICollection 인터페이스의 Queue 객체 (myQueue)를 복사하면 힙이나 스택에서 어떤 일이 발생합니까? AddRange가 ICollection 인터페이스를 기대한다면 어떻게 AddRange의 Queue 클래스를 패러럴로 사용할 수 있습니까? – leoleo