.NET 내부에서 뭔가 예상했던 것과 조금 다르게 작동하는 것을 발견했습니다. 내가 붙여 넣는 코드는 이해가되지 않지만, 훨씬 복잡한 함수의 압축 된 버전입니다. 나는 익명 형식 정보를 매개 변수 (아직 익명 형식을 만들지 않은 인스턴스)로 가져오고 있으며 해당 형식의 목록을 만들어 채우고 목록을 반환해야합니다. 지금, 나는 해결책을 발견,하지만 난 방법 B가 작동하는 이유를 알고 싶어하지만 방법 A.익명 유형 및 역학 목록 ... 혼동
방법 A :
이static void Main(string[] args)
{
var newItem = new { ID = Guid.NewGuid(), Name = "Test" };
dynamic list;
list = Activator.CreateInstance(typeof(List<>).MakeGenericType(newItem.GetType()));
list.Add(newItem);
list.Add(Activator.CreateInstance(newItem.GetType(), new object[] { Guid.NewGuid(), "Test 2" }));
}
방법 B : 다시
static void Main(string[] args)
{
var newItem = new { ID = Guid.NewGuid(), Name = "Test" };
System.Collections.IList list;
list = (System.Collections.IList)Activator.CreateInstance(typeof(List<>).MakeGenericType(newItem.GetType()));
list.Add(newItem);
list.Add(Activator.CreateInstance(newItem.GetType(), new object[] { Guid.NewGuid(), "Test 2" }));
}
, 난 솔루션을 찾지 못했고 방법 B가 작동하지만 Method A가 작동하지 않는 이유가 궁금합니다.
고마워요!
왜 그 시나리오에서 동적을 사용 하시겠습니까? 일반 목록을 작성 중입니다. 당신은 또한 당신이 받고있는 오류 또는 경고가 무엇인지를 말하지 않고 관련성이있을 수 있습니다. – Lazarus