kann sagen, dass ich die nächste Kurs Klasse:Allgemein Delegattyp Fehler
class Course
{
internal Student myStudent { get; set; }
internal string Name { get; set; }
public override string ToString()
{
return string.Format("{0, -5} {1, -15} {2}", Name, myStudent.Name, string.Join(" ", myStudent.Grade));
}
internal class Student
{
internal string Name { get; set; }
internal List<int?> Grade { get; set; }
}
}
und ich möchte in der Hauptverwendung in einem generischen Delegaten, einmal für int und einmal für string:
SomeDelegate<string> d1 = new SomeDelegate<string>(course => course.Name);
SomeDelegate<int> d2 = new SomeDelegate<int>(course => (int)course.myStudent.Grade.DefaultIfEmpty(null).Average());
Der generische Vertreter ist:
delegate T SomeDelegate<T>(T param);
aber ich bekomme Fehler.
Zeichenfolge keine Definition für 'Name' enthält ....
Warum ist das so?
Danke!
'T' ist sowohl die Art des Arguments und der Rückgabetyp des Delegaten, in 'd1' ist' course' also eine 'string' (und in' d2' ist es ein 'int'). Sie werden wahrscheinlich 'Func' (und 'Func ') stattdessen verwenden. –