C#에서 new()
제약 조건을 사용하여 일반 생성자에 매개변수 전달
목록에 요소를 추가할 때 생성자 매개변수를 사용하여 T 유형의 새 개체를 만들려고 하면 변수 인스턴스를 만들 때 매개변수를 제공할 수 없다는 컴파일 오류가 발생할 수 있습니다. 이 오류는 클래스에 생성자 매개변수가 있는 경우에도 발생합니다.
이 문제를 해결하려면 new()
제네릭 유형의 제약 조건을 사용해야 합니다. 이 제약 조건을 사용하면 매개 변수 없는 인스턴스를 만들 수 있지만 생성자 매개 변수가 포함된 경우에는 충분하지 않습니다.
대안은 매개변수를 도입하여 매개변수를 기반으로 객체가 생성되도록 하는 것입니다. 함수는 이를 효율적으로 수행할 수 있습니다.
<code class="language-csharp">public static string GetAllItems<T>(..., Func<ListItem, T> del) { ... List<T> tabListItems = new List<T>(); foreach (ListItem listItem in listCollection) { tabListItems.Add(del(listItem)); } ... }</code>
이 함수는 필수 매개변수가 있는 새 객체를 생성하는 람다 표현식을 사용하여 호출할 수 있습니다.
<code class="language-csharp">GetAllItems<Foo>(..., l => new Foo(l));</code>
위 내용은 `new()` 제약 조건을 사용하여 C#의 일반 생성자에 인수를 전달하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!