Четвер, 21.11.2024, 16:22
Гость

Мішатронік

Мобільна версія | Додати у вибране  | Мій профіль | Вихід | RSS |
Меню сайту
Наше опитування
Чи знаєте вы Java
Всього відповідей: 3
Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0


Массивы комбинируют объекты одного типа, а кортежи (tuple) могут комбинировать объекты различных типов. Понятие кортежей происходит из языков функционального программирования, таких как F#, где они часто используются. С появлением .NET 4 кортежи стали доступны в .NET Framework для всех языков .NET.

В .NET 4 определены восемь обобщенных классов Tuple и один статический класс Tuple, который служит фабрикой кортежей. Существуют различные обобщенные классы Tuple для поддержки различного количества элементов; например, Tuple<T1> содержит один элемент, Tuple<T1, Т2> — два элемента и т.д. Элементы кортежа могут быть доступны через свойства Item1, Item2 ... .

В случае если имеется более восьми элементов, которые нужно включить в кортеж, можно использовать определение класса Tuple с восемью параметрами. Последний параметр называется TRest, в котором должен передаваться сам кортеж. Таким образом, есть возможность создавать кортежи с любым количеством параметров.

Давайте рассмотрим пример использования кортежей:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        // Данный метод возвращает кортеж с 4-мя
        // разными значениями
        static Tuple<int, float, string, char> Corteg(int a, string name)
        {
            int sqr = a * a;
            float sqrt = (float)(Math.Sqrt(a));
            string s = "Привет, " + name;
            char ch = (char)(name[0]);

            return Tuple.Create<int, float, string, char>(sqr, sqrt, s, ch);
        }

        static void Main(string[] args)
        {
            var myTuple = Corteg(25,"Alexandr");
            Console.WriteLine("{0}\n25 в квадрате: {1}\nКвадратный корень из 25: " 
                + "{2}\nПервый символ в имени: {3}\n",myTuple.Item3,myTuple.Item1,myTuple.Item2,myTuple.Item4);

            // Создаем кортеж произвольной размерности
            var myTuple2 = Tuple.Create<int, char, string, decimal, float, byte, short, Tuple<int,
                float, string, char>>(12, 'C', "Name", 12.3892m, 0.5f, 120, 4501, myTuple);
            Console.ReadLine();
        }

    }

    public class Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>
    {
    }
}

Использование кортежей

 

Форма входа
Пошук
Друзі сайту
Календар
«  Листопад 2024  »
ПнВтСрЧтПтСбНд
    123
45678910
11121314151617
18192021222324
252627282930

Єдина Країна! Единая Страна!