当前上下文中不存在如何解决名称“名称”和“值”的问题

时间:2019-08-13 10:42:51

标签: c#

我是C#的新手,在完成一项任务的过程中,我们必须创建Counter类并使用它来创建和使用Counter对象。我遇到了无法解决的错误 名称“名称”和“值”在当前上下文中不存在。

我必须告诉控制台,将格式为{{0}为{1}“的WriteLine以及要求c为其名称的结果和要求c的值的结果。

我感觉它与名称和值的范围有关,但是经过多次尝试,我仍然无法弄清楚我要去哪里哪里

文件名Program.cs

namespace CounterTest
{
   public class MainClass
    {
        private static void PrintCounters(Counter[] counters)
        {
            foreach ( Counter c in counters) 
            {
                Console.WriteLine("Name is: {0} Value is: {1}", Name, Value);
            } **** Where I am receiving the error                ^      ^

        }
       public static void Main(string[] args)
        {

        }
    }
}

文件名Class1.cs

namespace CounterTest
{
    public class Counter
    {
        private int _count;
        public int Value
        {
            get
            {return _count;}
        }
        private string _name;
        public string Name
        {
           get
            {return _name;}
            set
            { _name = value; }
        }

        public Counter(string Name)
        { _name = Name;
          _count = 0;}

        public void Increment()
        {
            _count = _count + 1; 
        }
        public void Reset()
        {
            _count = 0;
        }
    }
}

感谢您能提供的任何帮助。

3 个答案:

答案 0 :(得分:5)

更改

Console.WriteLine("Name is: {0} Value is: {1}", Name, Value);

收件人

Console.WriteLine("Name is: {0} Value is: {1}", c.Name, c.Value);

您还可以使用在C#6或更高版本中可用的字符串插值:

Console.WriteLine($"Name is: {c.Name} Value is: {c.Value}");

答案 1 :(得分:1)

问题是您没有在代码中指定“名称”和“值”的来源,这就是为什么会出现此错误。

.nav-item {
 margin-right: 20px;
 }

在foreach循环中,您从“计数器”数组中获取一个“ c”元素。然后,应通过编写“ c.Name”和“ c.Value”来指定“名称”和“值”是“ c”的属性。

答案 2 :(得分:0)

由于使用了foreach循环,因此可以通过使用点运算符轻松地使用对象属性

例如

  foreach ( Counter c in counters) 
        {
            Console.WriteLine("Name is: {0} Value is: {1}", c.Name, c.Value);
        } 

或者您可以使用字符串插值以提高可读性

foreach ( Counter c in counters) 
        {
            Console.WriteLine($"Name is: {c.Name} Value is: {c.Value}");
        }