C# 返回列表中对象的正确方法
当我尝试返回卡丁车列表时,我在其中填充我的对象,我会得到“systems.collections.generic.list”,我如何以正确的方式返回卡丁车 方法C# 返回列表中对象的正确方法,c#,list,object,methods,return,C#,List,Object,Methods,Return,当我尝试返回卡丁车列表时,我在其中填充我的对象,我会得到“systems.collections.generic.list”,我如何以正确的方式返回卡丁车 方法 public class AddToKart { public static List<KartItem> PutItemInKart(string input, int inputNumber, double inputPrice) { List<
public class AddToKart
{
public static List<KartItem> PutItemInKart(string input, int inputNumber, double inputPrice)
{
List<KartItem> kart = new List<KartItem>();
kart.Add(new KartItem() {
Item = input,
Pound = inputNumber,
Cost = inputPrice
});;
return kart;
}
}
PutItemInKart试验方法试验项目磅数和成本
来自对象
[Fact]
public void AddToKartMethodItem()
{
//Arrange
string expected = "fdfdfsds";
//Act
List<KartItem> items = AddToKart.PutItemInKart(expected, 3, 4.5);
string actual = items[0].Item;
//Assert
Assert.Equal(expected, actual);
}
[Fact]
public void AddKartMethodPound()
{
int expected = 3;
List<KartItem> numbers = AddToKart.PutItemInKart("mingt", expected, 4.45);
int actual = numbers[0].Pound;
Assert.Equal(expected, actual);
}
[Fact]
public void AddToKartMethodCost()
{
double expected = 34.56;
List<KartItem> cost = AddToKart.PutItemInKart("fdsf", 5, expected);
double actual = cost[0].Cost;
Assert.Equal(expected, actual);
}
[事实]
public void addToCartMethodItem()
{
//安排
字符串应为=“fdfsds”;
//表演
列表项=AddToKart.PutItemInKart(预期为3,4.5);
字符串实际值=项[0]。项;
//断言
断言。相等(预期、实际);
}
[事实]
public void AddKartMethodPound()
{
int预期=3;
列表编号=AddToKart.PutItemInKart(“mingt”,预计为4.45);
int实际值=数字[0]。磅;
断言。相等(预期、实际);
}
[事实]
公共无效AddToCartMethodCost()
{
双预期=34.56;
列表成本=AddToKart.PutItemInKart(“fdsf”,5,预期);
双倍实际=成本[0]。成本;
断言。相等(预期、实际);
}
这取决于您使用的场景。
从您的代码中,我可以看出您必须拥有一个类KartContainer,它必须包含所有与操作相关的Kart
public class KartContainer
{
private List<KartItem> Items = new List<KartItem>();
public void AddItem(KartItem item)
{
Items.Add(KartItem);
}
public List<KartItem> GetItems()
{
return Items;
}
}
你是以正确的方式归还的。问题在于如何处理由
PutItemInKart()
返回的结果。请向我们展示该代码,我们可以帮助您修复它。是否将结果直接传递到控制台.WriteLine()
?当您在调试器中查看对象时,调试器将调用对象上的ToString
,以显示描述该对象的字符串。如果类没有重写ToString
方法,则使用基类版本。所有类的基类都是System.Object
和System.Object.ToString
只返回它所知道的关于对象的信息——它的类名。这个方法总是返回一个只有1个项目的新赛车。您的购物车只能有1个项目?也许逻辑有缺陷?你能告诉我们所有的代码吗?你在哪里看到“系统.集合.通用.列表”?@Train我已经包括了KartItem。我希望这能帮到你-谢谢!看了这么长时间的代码,我的大脑变慢了,哈哈
public class KartContainer
{
private List<KartItem> Items = new List<KartItem>();
public void AddItem(KartItem item)
{
Items.Add(KartItem);
}
public List<KartItem> GetItems()
{
return Items;
}
}
KartContainer kart = new KartContainer();
KartItem item = new KartItem()
{
Item = "",
Pound = 1,
Cost = 1
}
kart.AddItem(item);
List<KartItem> Items = kart.GetItems();
public KartItem(string item, int pound, double cost)
{
Item = item;
Pound= pound;
Cost = cost;
}