Loading...
tsv_tsonev avatar tsv_tsonev 4 Точки

Functional Programming - C# - 01.ActionPrint

Здравейте, може ли някой да сподели решение на първата задача от упражненията, че явно не съм разбрал лекцията и не правя както трябва нещата още в началото. Като стъпки правя следните неща.

1. Приемам входните данни.

2. Слагам ги в колекция.

3. Правя си метод за принтиране и се опитвам да принтирам с Action<T> каквото се иска, но не изкарвам нищо.

Това ми е кодът, позволявам си да го копирам тук, понеже е малък.

 

public class ActionPrintExercise
{
    public static void Main()
    {
        string input = Console.ReadLine();
        var names = input.Split().ToList();
        Action<string> action = Print;
    }

    public static void Print(string n)
    {
        Console.WriteLine(n);
    }
}

 

Тагове:
1
C# Advanced 09/06/2016 10:01:01
gabi.ivanova avatar gabi.ivanova 370 Точки

Така, както си го направил, остава ти да извикаш action-а върху колекцията от имена. До момента си "закачил" метода Print върху Action-a и остава да го извикаш. Съответно в един Action може да имаш няколко метода, и при извикването му - ще се изпълнят всички

public class ActionPrintExercise
{
    public static void Main()
    {
        string input = Console.ReadLine();
        string[] names = input.Split();
        Action<string> action = Print;
        action(names);
    }
    public static void Print(string[] names)
    {
        foreach (var item in names)
        {
           Console.WriteLine(item);
        }
    }
}

 

1
09/06/2016 09:59:18
tsv_tsonev avatar tsv_tsonev 4 Точки

Благодаря за отговора по това време, но отново не става (и така пробвах преди да отворя темата). Сега изобщо не иска да компилира и ми дава грешка: "cannot convert from 'System.Collections.Generic.List<string>' to 'string'"

0
fargo avatar fargo 18 Точки

Здравей, 

проблемът е че Print методът очаква стринг, а ти му подаваш лист от стрингове(каквото описва и грешката).

Вариантите са два - може да извикаш екшъна за всеки отделен елемент на листа(чрез foreach) или да промениш Print метода да приема List<string> и в самия метод да работиш с отделните стринг елементи.

 

2
tsv_tsonev avatar tsv_tsonev 4 Точки

С foreach всичко стана както си трябва. Успех за напред и благодаря.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.