Как сохранить функции в словаре с ключом uint (C #) - PullRequest
2 голосов
/ 26 февраля 2011

Может ли кто-нибудь предоставить мне пример того, как, возможно, я храню различные функции в словаре, используя int в качестве ключа и функцию в качестве значения.Так что тогда я мог бы легко вызвать функцию следующим образом:

functionsDictionary[123](string);

Обратите внимание, что все функции в словаре будут принимать только один ввод, который является строкой.И не будет возврата.

Ответы [ 2 ]

8 голосов
/ 26 февраля 2011

Звучит так, как будто вы после

Dictionary<int, Action<string>>

или, возможно, (в зависимости от вашего названия)

Dictionary<uint, Action<string>>

Образец:

using System;
using System.Collections.Generic;

class Test
{
    static void Main()
    {
        var dictionary = new Dictionary<int, Action<string>>
        {
            { 5, x => Console.WriteLine("Action for 5: {0}", x) },
            { 13, x => Console.WriteLine("Unlucky for some: {0}", x) }
        };

        dictionary[5]("Woot");
        dictionary[13]("Not really");

        // You can add later easily too
        dictionary.Add(10, x => Console.WriteLine("Ten {0}", x));
        dictionary[15] = x => Console.WriteLine("Fifteen {0}", x);

        // Method group conversions work too
        dictionary.Add(0, MethodTakingString);
    }

    static void MethodTakingString(string x)
    {
    }
}
1 голос
/ 26 февраля 2011
Dictionary<int, Action<string>> _functions = new Dictionary<int, Action<string>>();
_functions[123]("hello");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...