«generics» 태그된 질문

제네릭은 .NET 언어, Java, Swift 및 Rust를 포함하여 다양한 언어로 발견되는 파라 메트릭 다형성의 한 형태입니다.

18
단일 항목을 IEnumerable <T>로 전달
매개 변수 T를 예상하는 메소드에 단일 유형의 항목을 전달하는 일반적인 방법이 IEnumerable&lt;T&gt;있습니까? 언어는 C #, 프레임 워크 버전 2.0입니다. 현재 도우미 메서드를 사용하고 있습니다 (.Net 2.0이므로 LINQ와 비슷한 캐스팅 / 프로젝션 도우미 메서드가 많이 있습니다). 그러나 이것은 어리석은 것처럼 보입니다. public static class IEnumerableExt { // usage: IEnumerableExt.FromSingleItem(someObject); public static …
377 c#  .net  generics  ienumerable 


12
C #에서 연산자 ==를 제네릭 형식에 적용 할 수 없습니까?
MSDN== 운영자 의 문서에 따르면 , 미리 정의 된 값 형식의 경우 항등 연산자 (==)는 피연산자의 값이 같으면 true를 반환하고 그렇지 않으면 false를 반환합니다. string 이외의 참조 유형의 경우 ==는 두 피연산자가 동일한 객체를 참조하면 true를 반환합니다. 문자열 유형의 경우 ==는 문자열 값을 비교합니다. 사용자 정의 값 유형은 == 연산자를 …

16
클래스가 일반 클래스에서 파생되었는지 확인
파생 클래스가있는 프로젝트에 일반 클래스가 있습니다. public class GenericClass&lt;T&gt; : GenericInterface&lt;T&gt; { } public class Test : GenericClass&lt;SomeType&gt; { } Type객체가 파생 되었는지 알아내는 방법이 GenericClass있습니까? t.IsSubclassOf(typeof(GenericClass&lt;&gt;)) 작동하지 않습니다.
309 c#  generics  reflection 

8
수율 반환을 사용한 IEnumerable 및 Recursion
IEnumerable&lt;T&gt;WebForms 페이지에서 컨트롤을 찾는 데 사용 하는 방법이 있습니다. 이 방법은 재귀 적이며 yield return재귀 호출의 값을 returnig 할 때 원하는 유형을 반환하는 데 문제 가 있습니다. 내 코드는 다음과 같습니다. public static IEnumerable&lt;Control&gt; GetDeepControlsByType&lt;T&gt;(this Control control) { foreach(Control c in control.Controls) { if (c is T) { yield return …




13
C #에서 일반 인수의 널 또는 기본 비교
다음과 같이 정의 된 일반 메소드가 있습니다. public void MyMethod&lt;T&gt;(T myArgument) 가장 먼저 할 일은 myArgument의 값이 해당 유형의 기본값인지 확인하는 것입니다. if (myArgument == default(T)) 그러나 T가 == 연산자를 구현한다고 보장하지 않기 때문에 컴파일되지 않습니다. 그래서 코드를 다음과 같이 전환했습니다. if (myArgument.Equals(default(T))) 이제 이것은 컴파일되지만 myArgument가 null 인 경우 …
288 c#  generics 

11
일반적인 매개 변수로 널 입력 가능 유형?
나는 이런 식으로하고 싶다 : myYear = record.GetValueOrNull&lt;int?&gt;("myYear"), 널 입력 가능 유형을 일반 매개 변수로 확인하십시오. GetValueOrNull함수가 null을 반환 할 수 있기 때문에 첫 번째 시도는 다음과 같습니다. public static T GetValueOrNull&lt;T&gt;(this DbDataRecord reader, string columnName) where T : class { object columnValue = reader[columnName]; if (!(columnValue is DBNull)) { …
288 c#  generics 

6
Mockito를 사용하여 일반 매개 변수로 클래스를 조롱
일반 매개 변수로 클래스를 조롱하는 깨끗한 방법이 있습니까? 내가 Foo&lt;T&gt;기대하는 메소드에 전달 해야하는 클래스를 조롱해야한다고 가정 해보십시오 Foo&lt;Bar&gt;. 다음을 쉽게 수행 할 수 있습니다. Foo mockFoo = mock(Foo.class); when(mockFoo.getValue).thenReturn(new Bar()); 가정하면 getValue()제네릭 형식을 반환합니다 T. 그러나 나중에 기대하는 방법으로 새끼 고양이를 옮길 때 새끼 고양이가 생길 것 Foo&lt;Bar&gt;입니다. 캐스팅이 이것을하는 …
280 java  generics  mockito 

5
스칼라에서 더 높은 종류의 유형은 무엇입니까?
웹에서 다음을 찾을 수 있습니다. 더 높은 종류의 유형 == 유형 생성자? class AClass[T]{...} // For example, class List[T] 어떤 사람들은 이것이 정의에 부합하는 유형을 추상화하기 때문에 이것이 더 높은 종류의 유형이라고 말합니다. 더 높은 종류의 유형 은 다른 유형을 취하여 새로운 유형을 구성하는 유형입니다. 이것들은 타입 생성자 로도 알려져 …

17
Java에서 일반 배열 유형을 만들 수없는 이유는 무엇입니까?
Java가 우리를 허용하지 않는 이유는 무엇입니까? private T[] elements = new T[initialCapacity]; .NET에서 런타임에 다른 크기를 가질 수있는 값 유형이 있기 때문에 .NET이 그렇게 할 수 없다는 것을 이해할 수 있었지만 Java에서는 모든 종류의 T가 객체 참조이므로 동일한 크기 ( 틀 렸으면 말해줘). 이유가 무엇입니까?

3
Collections.emptyList ()는 List <Object>?를 반환합니다.
일반 유형 매개 변수를 유추하는 Java 규칙을 탐색하는 데 문제가 있습니다. 선택적 목록 매개 변수가있는 다음 클래스를 고려하십시오. import java.util.Collections; import java.util.List; public class Person { private String name; private List&lt;String&gt; nicknames; public Person(String name) { this(name,Collections.emptyList()); } public Person(String name,List&lt;String&gt; nicknames) { this.name = name; this.nicknames = nicknames; } …


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.