字典中的保护级别错误

时间:2016-05-04 04:22:30

标签: c# dictionary

我收到此错误消息"由于其保护级别而无法访问"在最后一行,但我已经检查过,一切似乎都是公开的。可能有什么不对?

using System;
using System.Collections.Generic;

namespace Test
{
    class Sneakers
    {

        public string _brand;
        public Sneakers(string brand)
        {
            _brand = brand;
        }
        public string Show()
        {
            return "The brand is: " + _brand;
        }
        public static string Show(Sneakers mySneak)
        {
            return mySneak.Show();
        }
    }
    class Program
    {
        static void Main(string[] args)
        {

            Sneakers mySneak = new Sneakers("Nike");

            Dictionary<Sneakers, double> collection = new Dictionary<Sneakers, double>();
            collection.Add(mySneak, 10);

            foreach (KeyValuePair<Sneakers, double> item in collection)
            {
                Console.WriteLine(Sneakers.Show(item.key));//HERE IS THE ERROR IN "key"
            }
        }
    }
}

6 个答案:

答案 0 :(得分:7)

使用而非

Console.WriteLine(Sneakers.Show(item.Key));

答案 1 :(得分:0)

请通过K而不是k

项。的ķ EY :)

答案 2 :(得分:0)

键应以大写字母开头:

        foreach (KeyValuePair<Sneakers, double> item in collection)
        {
            Console.WriteLine(Sneakers.Show(item.Key));//HERE IS THE ERROR IN "key"
        }

答案 3 :(得分:0)

看起来像拼写错误,它应该是item.Key

K ,而不是key

答案 4 :(得分:0)

KeyValuePair有一个名为Key的媒体资源。请注意Pascal命名约定。你正在使用密钥,这是错误的。

foreach (KeyValuePair<Sneakers, double> item in collection)
                {
                    Console.WriteLine(Sneakers.Show(item.Key));//HERE IS THE ERROR IN "key"
                }

答案 5 :(得分:-1)

class Sneakers未标记为公开