Yurijnd.com
Четверг, 06.02.2025, 20:04
Меню сайта

Вход на сайт

Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Статистика

    Онлайн всего: 3
    Гостей: 3
    Пользователей: 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>
     {
     }
    }
    
    Использование кортежей
    Copyright MyCorp © 2025
    Сделать бесплатный сайт с uCoz