왜 내가 메서드 내에서 다음 람다를 사용할 수 없습니까? 어떤 상황에서 제네릭 형식을 사용할 수 있습니까?왜 lamba 표현식과 함께 제네릭 형식을 사용할 수 없습니까?
예를 들어 내가 클래스 내에 제네릭을 사용할 수 있다는 것을 알고 :
//Valid
public class GenericList<T>
{
void Add(T input) { }
}
하지만 난 다음 코드에서 수행 할 수 없습니다
//Not valid
private void Timer1_Tick(object sender, EventArgs e)
{
//Edit:
//As you can guess this is a timer event and Action is called
//only in this scope but possibly more than one time
//that's why i though to make it Action method.
//In the following line `Τ` is not recognized...
Action<List<T>, List<T>> syncLists = (l1, l2) => { ... };
}
는 ** 난 그게 생각하지 않습니다 프레임 워크에만 해당하지만 3.5를 사용하는 경우에만
'T'가 외부 클래스 정의에 정의되어 있습니까? – 2kay
성취하고자하는 것은 무엇입니까? 두 번째 코드 예제에서 'T'가 나타내는 타입은 무엇입니까? generics를 사용하면 결국 형식을 지정해야합니다. 'T'에 대한 유형이 코드에서 어디에 지정됩니까? –
'Timer' 스코프 내에서만 작은 함수를 정의해야합니다. 'T'는 제네릭 타입을 원하기 때문에 클래스가 될 수 있습니다. 아마도 나는 '동적'을 사용할 수는 있지만 바람직하지 않습니다. – CodeArtist