Я не знаю, как правильно сформулировать вопрос, напишу как есть.
Допустим, я хочу сделать "объект", содержащий в себе несколько строго упорядоченных переменных разных типов данных, значения которых можно было бы изменять. Что-то типа такого:
myObj = int,int, bool, string, string;
Есть ли в сишарпе такой велосипед?
Можно использовать Кортеж:
var myObj = new Tuple<int, int, bool, string, string>(5, 3, true, "text", "string");
или:
var myObj = Tuple.Create(5, 3, true, "text", "string");
Обращаться к компонентам кортежа затем можно так: myObj.Item1, myObj.Item3
Одно из преимуществ использования кортежей - у них "правильно" работает условие эквивалентности "из коробки", т.е:
new Tuple<int, int, bool, string, string>(5, 3, true, "text", "string") == new Tuple<int, int, bool, string, string>(5, 3, true, "text", "string")
вернет true, это полезно, когда вы используете кортежи, например, в качестве ключей словарей
В случае же с отдельным классом, как предлагают ниже, вам придется еще и перегрузить операторы == и !=
Но использовать кортежи стоит осторожно - сильное увлечение ими может значительно снизить читабельность кода!
public class Velosiped
{
public int a;
public int b;
public bool c;
public string d;
public string e;
}
Так и знал - тупл, трупл, четверупл. "Какой моральный человек" добровольно такое в продакшен вставит?
Сборка персонального компьютера от Artline: умный выбор для современных пользователей