В настоящее время я работаю с .Net 2.0 и имеет интерфейс, общий тип которого используется для определения возвращаемого типа метода. Что-то вродеjava.lang.Void in C#?
interface IExecutor<T> {
T Execute() { ... }
}
Моя проблема в том, что некоторым классам, реализующим этот интерфейс, действительно не нужно ничего возвращать.
В Java вы можете использовать java.lang.Void для этой цели, но после довольно небольшого поиска я не нашел эквивалента в C#. В общем, я также не нашел хорошего пути решения этой проблемы. Я попытался найти, как люди будут делать это с делегатами, но ничего не обнаружил - что заставляет меня поверить, что проблема в том, что я сосать при поиске :)
Так что это лучший способ решить эту проблему? Как бы вы это сделали?
Спасибо!
Я не знаю решения, отличного от того, чтобы выбрасывать общую информацию и использовать разные классы/интерфейсы для случаев «void» и «non-'void». Это то, что сам .NET делает с типами «Func» и «Action» в 3.5. Исходя из C++, это часто меня раздражает, но я не знал, что у Java тоже есть способ. – jalf