如何让用户从C#中的数组中写入对象名?
很抱歉,我的问题是,我试图在这里查找这个问题,但所有问题都超出了我的技能水平 基本上,我首先要向用户显示对象数组的内容。 之后,用户将从数组中写下名称,程序将这些名称复制到一个大小相等的空对象数组中,直到数组满为止 这就是我的类对象的外观:如何让用户从C#中的数组中写入对象名?,c#,arrays,object,menu,C#,Arrays,Object,Menu,很抱歉,我的问题是,我试图在这里查找这个问题,但所有问题都超出了我的技能水平 基本上,我首先要向用户显示对象数组的内容。 之后,用户将从数组中写下名称,程序将这些名称复制到一个大小相等的空对象数组中,直到数组满为止 这就是我的类对象的外观: public class MyClass //Edit for better clarity { private string name; private int price; private string type; Public stri
public class MyClass //Edit for better clarity
{
private string name;
private int price;
private string type;
Public string Name
{
get {return name;}
set {name = value;}
}
public int Price
{
get {return price;}
set {price = value;}
}
public string Type
{
get {return type;}
set {type = value;}
}
public MyClass(string _name, int _price, string _type)
{
name = _name;
price = _price;
type = _type;
}
}
这就是我分配一个新类并创建对象的地方
public class Inventory
{
Myclass[] alternative = new MyClass[5]; // From this will be copied
MyClass[] storage = new MyClass[5]; //And here it will be copied to
那么,如何最好地在对象名称中创建一个用户类型,然后将其复制到另一个数组并存储它?如果我理解您的问题,您希望通过对象的适当名称获取对象 首先,您不应该在类中使用此名称,因为
Object
是来自系统名称空间的类
第二,既然你说你是乞丐,我就给你一个提示:
您可以使用自动属性,而不是声明一个私有字段和一个只获取/设置它而不执行特殊操作的属性。我建议你查一下
好的,现在来回答你的问题:(我将把对象
重命名为一个对象
)
anObject[]alternative=新的anObject[5];//将从中复制
anObject[]存储=新的anObject[5]//在这里,它将被复制到
/*显示替代对象阵列(通过循环)*/
int-storageIndex=0;
//得到名字
字符串userInput=Console.ReadLine();//或者用你想要的任何其他方式
//迭代初始值
for(int i=0;i
此代码会将另一个对象放入
存储器
。您现在所要做的就是迭代任意次数。对于自定义类,您不应该使用名称Object
:这非常令人困惑。您对的意思是什么?如何最好地在Object name
中键入用户Console.ReadLine()?
TextBox
?@JeroenvanLangen是,最好通过Console.ReadLine()执行。我意识到我的类名“object”也很糟糕。我把它作为一个例子,因为我的实际项目在我自己的语言中有其他名称,所以我想我把它们改成英语,效果很好。这个新值是否会保存到我的Inventory类中的其他方法中?例如“删除项目”或“显示项目”?谢谢你的提示。@MasterKjK,我不确定我是否正确理解了你的问题。如果您询问其他功能是否能够访问此阵列,简短的回答是“是”。为此,需要声明“存储”全局或将该数组作为参数传递给其他函数。您还应该注意所有这些,我建议您阅读参考与值类型。我不想表现得粗鲁,但我强烈建议你买一本关于编程的好书,因为你的基础似乎很薄弱。
anObject[] alternative = new anObject[5]; // From this will be copied
anObject[] storage = new anObject[5]; //And here it will be copied to
/* display the alternative anObject array (via loop)*/
int storageIndex = 0;
// Get the name
string userInput = Console.ReadLine(); // Or use any other way you want
// Iterate over initial aray
for (int i = 0; i < alternative.Length; i++)
{
if(alternative != null) // Make sure it exists
{
if (userInput == alternative[i].Name)
storage[storageIndex++] = alternative[i];
}
}