Код: Выделить всё
public void foo(Class> clazz) {
...
}
foo(Integer.class) // OK!
foo(Object.class) // Error - does not implement Comparable
Код: Выделить всё
public void Foo(Type clazz) {
...
}
Foo(typeof(int)) // OK!
Foo(typeof(object)) // OK!
Код: Выделить всё
public void Foo() where T : IComparable {
typeof(T)
}
Foo() // OK!
Foo() // Error - does not implement IComparable
Обновление
Я вернулся, чтобы снова задать этот вопрос. Причина в том, что я обнаружил случай, когда общее решение не работает.< /p>
Приведенный выше код отлично работает, если вы используете один тип; например:
Java
Код: Выделить всё
public void foo(Class> clazz) {
...
}
Код: Выделить всё
public void Foo() where T : IComparable {
typeof(T)
}
Java
Код: Выделить всё
public void foo(Iterable
Подробнее здесь: [url]https://stackoverflow.com/questions/73818082/does-c-sharp-have-a-generic-equivalent-of-javas-classt[/url]
Мобильная версия