Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Руководство_по_C#.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
10 Мб
Скачать
☆

4.7Кортежи

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

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

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

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

using System;

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>

{

}

}

4.8Строки

С точки зрения регулярного программирования строковый тип данных string относится к числу самых важных в C#. Этот тип определяет и поддерживает символьные строки. В целом ряде других языков программирования строка представляет собой массив символов. А в C# строки являются объектами. Следовательно, тип string относится к числу ссылочных.

Построение строк

Самый простой способ построить символьную строку — воспользоваться строковым литералом. Например, в следующей строке кода переменной ссылки на строку str присваивается ссылка на строковый литерал:

string str = "Пример строки";

В данном случае переменная str инициализируется последовательностью символов "Пример строки". Объект типа string можно также создать из массива типа char. Например:

char[] chararray = {'e', 'x', 'a', 'm', 'p', 'l', 'e'};

string str = new string(chararray);

Как только объект типа string будет создан, его можно использовать везде, где только требуется строка текста, заключенного в кавычки.