class Program
{
public static void Print(MethodArguments args)
{
Console.WriteLine("ID = " + args.ID.ToString());
Console.WriteLine("Name = " + args.Name);
}
public static void Main(string[] args)
{
MethodArguments arguments = new MethodArguments();
arguments.ID = 20;
arguments.Name = "John";
Print(arguments);
Console.ReadKey();
}
}
здесь возникает вопрос: «Как я могу использовать кортеж вместо объявления типа MethodArguments
?» - потому что если да, то я думаю, что напрашивается вопрос... первый вопрос "должен ли я....?", а ответ будет "почти наверняка нет", а какой пункт "как...?" становится в значительной степени спорным
@morteza.akbarinejad Эдит?!
class Program
{
private static void Print((int Id, string Name) args)
{
Console.WriteLine($"ID = {args.Id.ToString()}");
Console.WriteLine($"Name = {args.Name}");
}
public static void Main(string[] args)
{
Print((20, "John"));
Console.ReadKey();
}
}
Хотя это правильный ответ, он не отвечает на Комментарий Марка, чтобы объяснить, почему мы не должны этого делать.
@DavidG, потому что определенно чище просто использовать два отдельных параметра.
@lionthefox Я знаю это, но человек, опубликовавший сообщение, должен был объяснить это.
@DavidG, ты абсолютно прав, извини, я неправильно понял твое заявление.
Да, я согласен, извините, я должен был упомянуть об этом. В любом случае имеет смысл передавать несколько значений через один параметр в метод, который принимает только один объект. Например, вы можете использовать объект Tuple<T1,T2,T3>
в качестве аргумента метода для Thread.Start(Object)
, чтобы предоставить процедуре запуска потока три элемента данных. (docs.microsoft.com/en-us/dotnet/api/…)
Добро пожаловать в Stack Overflow. Пожалуйста, не могли бы вы уточнить свой вопрос? На данный момент не совсем понятно, где вы хотите использовать кортеж. (Вообще, вопросы, телом которых является код только что, не очень полезны — очень редко заголовок вопроса может дать всю необходимую информацию.)