多个变量实例

时间:2015-07-27 16:39:04

标签: c# variables

我对c#相对较新,而且我在路上遇到了一些冲击,我不知道如何做到这一点。我的问题的一个例子是:

有30个人,每个人都有一个他/她独有的名字,以及他/她独有的年龄。

有没有办法创建一个“人”,并且有多个实例,每个实例包含不同的变量值,而不必为person1name-person30name person1age-person30age ...

声明个别变量

我问这个的原因是因为如果所说的“人”有超过10或20个不同的变量,那么最多可以有300到600个单独声明的变量......

我希望这是有道理的,因为我不太善于解释这些事情。

2 个答案:

答案 0 :(得分:1)

首先,您需要创建一个类来保存您的" Person"对象:

    public class Person
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string ID { get; set; }
    }

然后你需要在某处创建一个Person个对象的列表。要创建大量的对象,可以创建List或其他集合类型对象。

    public void SomeCreationMethod()
    {
        List<Person> people = new List<Person>();
        people.Add(new Person() { FirstName = "John", LastName = "Doe", ID = "ABC123" });
        people.Add(new Person() { FirstName = "Jane", LastName = "Doe", ID = "ABC124" });
        people.Add(new Person() { FirstName = "Jack", LastName = "Doe", ID = "ABC125" });
        people.Add(new Person() { FirstName = "Jill", LastName = "Doe", ID = "ABC126" });
    }

可以从数据库,文本文件,网络服务等中读取Person个对象。然后,您可以通过索引引用它们。如果要通过其他类型的标识符引用它们,可以创建字典:

Dictionary<string, Person> people = new Dictionary<string, Person>();
people.Add("ABC123", new Person() { FirstName = "John", LastName = "Doe", ID = "ABC123" });

然后您可以使用以下方式退出:

var johnDoe = people["ABC123"];

您应该阅读面向对象的编程和集合。

http://www.codeproject.com/Articles/219869/Object-Oriented-Programming-in-Csharp-NET https://msdn.microsoft.com/en-us/library/ybcx56wz.aspx

答案 1 :(得分:0)

首先,我建议你google Object Oriented Programming并了解它的不同方面。我会尝试总结一下你的问题。

将某人视为个人对象。唯一的名称和年龄就像变量。您可以n=[] a="02081516171821242936374750565865666871737476".split('') while(a.length) n.push(a.splice(0,2).join('')) 人员值。把get()想象成一种询问这个人的方式,“你叫什么名字?”或“你的(插入数据)是什么?”

您还需要一种“创造”您的人的方法。这是通过getters完成的,我的小片段是您将姓名和年龄设置为特定值的地方。如果参数在某种形状或形式上有所不同,您可以拥有多个构造函数。示例为Constructors,然后有一个Person(string, int) ...等等。

Person(string, string)

现在你可以出去做每个人的多个实例。

public class Person
{
    private string _name;
    private int _age;
    //more variables

    Person(string name, int age)
    {
        this._name = name;
        this._age = age;
    }

    public int GetAge()
    {
        return age;
    }
    //... more getters. NOTE there is a way of doing this called "Accessors"

    public int Age { get; set; }
}

您有三个不同的Person p1 = new Person("Mark", 15); Person p2 = new Person("Mark", 24); Person p3 = new Person("Henry", 12); 个对象实例。现在一种很好的存储方法是使用人员列表。这可以通过Person来完成。我会让你查看如何添加和删除列表...等等。但是这是你的问题,为你的基本理解和个人工具做好准备,因为你研究更多关于OOP。欢呼声。