Я пытаюсь напечатать mycounters[0]
с помощью метода PrintCounters()
, но кажется, что PrintCounters(mycounters[0])
не работает, это проблема синтаксиса?Вызов PrintCounters() не выполняется, почему?
using System;
using System.Collections.Generic;
namespace Counter
{
class MainClass
{
List<Counter> counters = new List<Counter>();
public static void PrintCounters (IEnumerable<Counter> counters)
{
foreach (Counter c in counters)
{
Console.WriteLine("{0} is {1}", c.Name,c.Count);
}
}
public static void Main (string[] args)
{
List<Counter> mycounters = new List<Counter>();
mycounters.Add(new Counter ("counter1"));
mycounters.Add (new Counter ("counter2"));
mycounters [2] = mycounters [0];
for (int i = 0; i < 4; i++) {
mycounters[0].increment();
}
for (int i = 0; i < 9; i++) {
mycounters[1].increment();
}
PrintCounters (mycounters);
mycounters [2].reset();
PrintCounters (mycounters);
}
}
, так как я исправил все, в то время как я отладка программы, там отметить шоу до enter image description here
и это мой файл класса, нет никакой ошибки.
namespace Counter
{
public class Counter
{
private int _count;
public int Count
{
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++;
}
public void reset()
{
_count = 0;
}
}
}
Ваш метод 'PrintCounters' требует наличия массива' Counter', вы пытаетесь вызвать его с помощью одного экземпляра счетчика (myCou nter [0] == первый элемент вашего списка 'mycounters': что вы хотите напечатать? весь список или только первый элемент? –