';系统数组';不包含';容量';-C#
有人能帮我纠正两个错误吗 在类中,汽车显示:';系统数组';不包含';容量';-C#,c#,C#,有人能帮我纠正两个错误吗 在类中,汽车显示: this.persons=新人[initialColor]-“无法将类型'string'隐式转换为'int'” for(int j=0;j
public class Program
{
public static void Main()
{
Car blueCar = new Car("blue");
Garage smallGarage = new Garage(2);
Person relativePerson = new Person("relative");
smallGarage.ParkCar(blueCar, 0);
Console.WriteLine(smallGarage.Cars);
blueCar.SitPerson(relativePerson, 0);
Console.WriteLine(blueCar.Persons);
}
}
class Car
{
private Person[] persons;
public Car(string initialColor)
{
Color = initialColor;
this.persons = new Person[initialColor];
}
public string Color { get; private set; }
public void SitPerson (Person person, int seat)
{
persons[seat] = person;
}
public string Persons
{
get
{
for(int j = 0; j < persons.Capacity; j++)
{
if (persons[j] != null)
{
Console.WriteLine(String.Format("The {0} is in a {1} car.", persons[j].Type, j));
}
}
return "That's it.";
}
}
}
class Garage
{
private Car[] cars;
public Garage(int initialSize)
{
Size = initialSize;
this.cars = new Car[initialSize];
}
public int Size { get; private set; }
public void ParkCar (Car car, int spot)
{
cars[spot] = car;
}
public string Cars
{
get
{
for (int i = 0; i < cars.Length; i++)
{
if (cars[i] != null)
{
Console.WriteLine(String.Format("The {0} car is in spot {1}.", cars[i].Color, i));
}
}
return "That's all!";
}
}
}
class Person
{
public Person(string initialType)
{
Type = initialType;
}
public string Type { get; private set; }
}
}
公共类程序
{
公共静态void Main()
{
蓝色汽车=新车(“蓝色”);
车库小型车库=新车库(2);
人员亲属人员=新人员(“亲属”);
小型车库。停车场(蓝车,0);
控制台。WriteLine(小型车库。汽车);
blueCar.SitPerson(relativePerson,0);
控制台。写入线(blueCar.Persons);
}
}
班车
{
私人[]人;
公共汽车(字符串首字母缩写颜色)
{
颜色=初始颜色;
this.persons=新人[初始颜色];
}
公共字符串颜色{get;private set;}
公众席人员(人员、内部座位)
{
人[座位]=人;
}
公众人物
{
收到
{
对于(int j=0;j
容量
适用于可扩展集合,例如,指基础数组的大小;然而,在C#中,数组的宽度是固定的,因此数组的容量和长度在概念上没有区别
在引擎盖下,List
会根据需要将元素复制到更新、更大的阵列中,从而使容量几乎完全用于诊断目的
至于尝试通过新人[initialColor]
初始化,您使用了错误的括号:[]
用于数组和在数组中查找项,()
用于方法调用(在本上下文中,新人(initialColor)
正在人上调用构造函数.检查以了解如何使用阵列容量
是列表
的成员,而不是阵列
Capacity
不应用于获取元素的数量,它是一个内部实现细节,这就是Length
的用途。正如错误消息所说,System.Array
没有Capacity
但是Length
。所以你应该用它。谢谢!我将容量改为长度。它可以工作。我更改了括号,它显示了下一步:无法将类型“OPP1.Person”隐式转换为“OPP1.Person[]”。(OPP1 Person-是我的名称空间)。因此,我确实更改了括号:this.persons=newperson(initialColor);但仍有一些错误我不知道如何修复:“无法隐式地将类型'OPP1.Person'转换为'OPP1.Person[]”@David还值得一提的是List.Capacity
比List.Count
,这意味着如果你有一个包含5个元素的列表
,然后ListCapacity==8
除非调用List.trimOverse()
,它设置List.Capacity=List.Count
。应该明确指出获取数组
长度的正确方法是通过属性array.length