将对象放入List中对int不起作用

本文关键字:中对 int 不起作用 List 对象 | 更新日期: 2023-09-27 17:51:15

为什么我得到这个错误?: "匹配'System.Collections.Generic.List.Add(int)'的最佳重载方法有一些无效参数"

"参数1:不能从'tentamen130328Tarning '转换。

我以前使用过这样的列表,但是使用字符串并且有效。

代码:

       static void Main(string[] args)
        {
            List<int> _Tarning = new List<int>();
            int xVal = int.Parse(Interaction.InputBox("Skriv hur många tärningar du vill kasta:"));
            int yVal = int.Parse(Interaction.InputBox("Skriv hur många sidor du vill att tärningen ska ha:"));
            _Tarning.Add(new Tarning(xVal,yVal));
        }
    }
}
        class Tarning
        {
            Random rnd = new Random();
            static int _xVal, _yVal;
            static int[,] tarning = new int[_xVal, _yVal];
            int slumpa()
        {
              for (int i = 0; i <tarning.GetLength(0); i++)
                {
                    for (int j  = 0; j < tarning.GetLength(1); j++)
                    {
                        tarning[i, j] = rnd.Next(1, _yVal); 
                    }
                }
        }
            public Tarning(int Xval, int Yval)
            {
                Xval = _xVal;
                Yval = _yVal;
            }
        }
    }

将对象放入List中对int不起作用

Change List<int> _Tarning = new List<int>();

List<Tarning> _Tarning = new List<Tarning>();

您将_Tarning变量声明为:

List<int> _Tarning = new List<int>();

Tarning不是int型,不能隐式地转换为int型,因此编译器抱怨它不能添加Tarning(或将其转换为int型)。

修改列表的声明。

List<Tarning> _Tarning = new List<Tarning>;

您的列表声明必须是Tarning类型,而不是int。所以答案是:

List<Tarning> _Tarning = new List<Tarning>();

代替:

List<int> _Tarning = new List<int>();