Возникли проблемы с поиском, как вызвать этот метод расширения в словаре <T, T> - PullRequest
0 голосов
/ 10 июля 2011

Я успешно написал и использовал некоторые расширения классов. Однако, хотя я могу написать следующий, я не могу понять, как это назвать. Этот конкретный предназначен для преобразования списка пар ключ-значение стиля атрибута в строку.

public static class Extensions
{
    public static string AttributesToString<T, T1>(this Dictionary<T, T1> dict)
    {
        StringBuilder sb = new StringBuilder();

        foreach (KeyValuePair<T, T1> kv in dict)
        {
            sb.Append(" " + kv.Key + "=\"" + kv.Value + "\"");
        }

        return sb.ToString();
    }
}

Не работает следующее:

Dictionary<string, string> dict = new Dictionary<string, string>();

dict.AttributesToString() // error

Как я могу назвать этот добавочный номер?

1 Ответ

0 голосов
/ 10 июля 2011

У вас какая-то ошибка сборки или области видимости. Это работает отлично. Ваши методы расширения находятся в другой сборке или пространстве имен?

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            Dictionary<string, string> dict = new Dictionary<string, string>();
            dict.AttributesToString();
        }
    }

    public static class Extensions
    {
        public static string AttributesToString<T, T1>(this Dictionary<T, T1> dict)
        {
            StringBuilder sb = new StringBuilder();

            foreach (KeyValuePair<T, T1> kv in dict)
            {
                sb.Append(" " + kv.Key + "=\"" + kv.Value + "\"");
            }

            return sb.ToString();
        }
    }
}
...