Наивный вопрос о синтаксисе Java. Что значит
<T> T accept(ObjectVisitorEx<T> visitor);
означает? Каким будет эквивалент C #?
В C # это может быть:
O Accept<O>(ObjectVisitorEx<O> visitor);
Вот хорошее сравнение между обобщениями Java и C #.
Используется для передачи типов в качестве параметров. Синтаксис C # такой же (). Предложите поиск по термину «дженерики», так как этот термин вы ищете.
Эквивалент C # будет более или менее одинаковым. Если бы посетитель был интерфейсом, он был бы
O Accept(IObjectVisitorEx<O> visitor);
см. Java: http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html и C #: http://msdn.microsoft.com/en-us/library/ms379564(VS.80).aspx Аналогичный метод C # может быть
public T Foo<T>(Queue<T> v) // Queue<T> chosen for simplicity { return v.Dequeue(); }