Я делаю учебное видео для С# 4.0 для начинающих программистов.
Для каждой темы, которую я представляю, я включаю практический пример , который студент мог бы использовать, например, для улучшенной функциональности COM Interop, я показываю, как создайте файл Excel и заполните его значениями из кода.
Для параметров и параметров параметров. Я показываю, как вы можете создать метод ведения журнала с 5 параметрами, но не нужно передавать какие-либо, если вы не хотите, поскольку все они имеют значения по умолчанию. Таким образом, они видят, как методы вызова проще с этой функцией.
Я также хотел бы представить кортежи, если можно, но кажется, что все "практические примеры" (как в этом вопросе: Практические пример, где Tuple можно использовать в .Net 4.0?) очень продвинуты. Учащиеся, которые используют видео, изучают ООП, LINQ, используя дженерики и т.д., Но, например, функциональное программирование или "решение проблемы 11 Project Euler" выходят за рамки этого видео.
Может ли кто-нибудь подумать о примере, где кортежи действительно были бы полезны начинающему программисту или примеру, где они могли бы по крайней мере понять, как они могут быть использованы и продвинутым программистом? Их механика довольно прямолинейна - Чтобы начинающий программист мог понять, я хотел бы просто найти пример, чтобы ученик мог фактически использовать их по практической причине. Любые идеи?
Вот что я до сих пор, но это просто сухая механика без какой-либо функциональности:
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//two ways to define them
var customer = new Tuple<int, string, string>(23, "Sam", "Smith");
var customer2 = Tuple.Create<int, string, string>(34, "James", "Allard");
//with type inference, more concise (only available with the Create keyword)
var customer3 = Tuple.Create(23, "John", "Hoopes");
//you can go up to eight, then you have to send in another tuple
var customer4 = Tuple.Create(1, 2, 3, 4, 5, 6, 7, Tuple.Create(8, 9, 10));
Console.WriteLine(customer.Item1);
Console.WriteLine(customer2.Item2);
Console.WriteLine(customer3.Item3);
Console.WriteLine(customer4.Rest.Item1.Item3);
Console.ReadLine();
}
}
}