[英]Array in Classes C#
我真的是C#的新手,目前正在从事一项对我来说真的没有意义的任务。 我需要朝正确的方向踢。
分配:
我需要制作一个控制台应用程序,称为杂货店清单。 该购物清单包含一个名为GroceryList的类。 此类包含一个实例变量积,它是一个数组。
该数组包含产品类型的项目。
该类产品具有字符串名称和int数量作为属性。 产品类是抽象的,有2个子类,分别称为新鲜和草药。
我需要证明我可以将项目添加到GroceryList并显示该列表。
我的问题是该数组位于GroceryList类中,并且无法向其添加产品。 我缺少了一些东西,我已经思考了好几个星期了,并尝试了不同的解决方案而没有结果。 我什至想知道分配是否错误。 这是我到目前为止的内容:
namespace GroceryList
{
class Program
{
static void Main(string[] args)
{
bool Displaymenu = true;
while (Displaymenu == true)
{
Displaymenu = mainMenu();
}
}
public bool mainMenu()
{
Console.WriteLine("What would you like to do?");
Console.WriteLine("1) add a fresh product");
Console.WriteLine("2) add a herb");
Console.WriteLine("3) exit");
string result = Console.ReadLine();
if (result == "1");
{
Console.Clear();
product.fresh fresh1 = new product.fresh();
Console.WriteLine("What type of fresh product would you like to add?");
fresh1.naam = Console.ReadLine();
Console.WriteLine("How much of " + fresh1.naam + " would you like to add?");
string number = Console.ReadLine();
int quant;
int.TryParse(number, out quant);
fresh1.Quantity = quant;
return true;
}
}
}
public class GroceryList
{
List<product> products = new List<product>();
}
abstract class product
{
public string naam { get; set; }
public int Quantity { get; set; }
public class fresh : product
{
}
public class herbs : product
{
}
}
}
您创建的GroceryList
类需要在代码中实例化(声明),以便可以在其中使用List<product>
。 就像您将fresh1
声明为product.fresh
对象一样,您必须将对象声明为GroceryList
。
因此,您可以在代码的开头声明GroceryList list = new GroceryList()
。 然后,您将需要在GroceryList list
的products
字段中添加项目。
有两种方法可以做到这一点。 一种方法是直接访问类内部的list
对象。
为此,您需要public
list
字段,以便可以从对象外部对其进行访问。 要将其声明为公共,请将public
关键字放在字段声明的前面。
这不一定是最佳做法,因为对于诸如添加之类的功能,最好有一个清晰的method
在字段上执行此类操作,而不是直接从对象外部进行修改(如果您想了解更多信息)关于这个想法,它称为Encapsulation 。)您可以在该程序中使用的一种有用方法是AddProduct
方法。
现在,我们需要这种方法做什么? 将一个product
对象添加到GroceryList
内部的list
中。
因此,我们需要在GroceryList
对象内部声明方法,如下所示。
public void AddProduct(product productToAdd)
{
products.Add(productToAdd);
}
然后,当您要将产品添加到GroceryList
对象时,可以在创建的list
对象上调用AddProduct(productVariableHere)
。
您可以使GroceryList类具有产品属性 。
public class GroceryList
{
public GroceryList()
{
Products = new List<Product>();
}
public List<Product> Products { get; set; }
}
然后添加产品可能看起来像
var bananas = new Product {Name = "banana", Quantity = 2};
var list = new GroceryList();
list.Products.Add(bananas);
既然您说过您正在学习该语言:
GroceryList
类上Add()
方法。 ReadOnlyCollection
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.