Как я могу вернуть более одного объекта другого типа в C # .net? - PullRequest
1 голос
/ 02 марта 2010

У меня есть два объекта, и я не хочу создавать класс-обертку, чтобы иметь данные об этих двух объектах, нет параметра 'Out', есть ли способ вернуть несколько объектов другого типа?

Это действительно понравится !!

Спасибо

Ответы [ 5 ]

5 голосов
/ 02 марта 2010

Нет. Вы не можете.

Вы можете использовать массив или карту для их возврата.

4 голосов
/ 02 марта 2010
public class VPair<TFirst, TSecond>
    {
        public TFirst First { get; set; }
        public TSecond Second { get; set; }

        public VPair(TFirst first, TSecond second)
        {
            First = first;
            Second = second;
        }
    }

или Tuple класс в c # 4.0

бонус:

public class VTriple<TFirst, TSecond, TThird> : VPair<TFirst, TSecond>
    {
        public TThird Third { get; set; }

        public VTriple(TFirst first, TSecond second, TThird third)
            : base(first, second)
        {
            Third = third;
        }
    }
1 голос
/ 02 марта 2010

В c ++ это можно сделать с помощью чего-то, называемого std :: pair. В StackOverflow есть сообщение о том, как это сделать в C #: Что такое аналог C # для C ++ std :: pair?

0 голосов
/ 02 марта 2010
return new object[] { object1, object2 }

Кроме того, вы можете использовать анонимный тип. См. Эту статью для получения дополнительной информации .

0 голосов
/ 02 марта 2010

Вы можете вернуть список .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...