2

リストに含まれているクラス内のリストにアクセスするのに苦労しているジェネリックスの新人。基本的に、ユーザーが入力した人々の職業をリストしようとしています(これを行うためのより簡単な方法があると確信していますが、このコードはジェネリックを実践するために作成されました)。

クラスコード

namespace GenericPersonClass
{
class GenericPerson<T>
{
    static public List<T> Occupations = new List<T>();
    string name, famName;
    int age;

    public GenericPerson(string nameS,string famNameS,int ageI, T Note)
    {
        name = nameS;
        famName = famNameS;
        age = ageI;
        Occupations.Add(Note);
    }

    public override string  ToString()
        {

            return "The name is " + name + " " + famName + " and they are " + age;
        }
  }
}

メインコード

namespace GenericPersonClass
{
class Program
{
    static void Main(string[] args)
    {
        string token=null;
        string nameS, lastNameS,occS;
        int age;
        List<GenericPerson<string>> Workers = new List<GenericPerson<string>>();

        while (token != "no" || token != "No")
        {
            Console.WriteLine("Please enter the first name of the person to input");
            nameS = Console.ReadLine();
            Console.WriteLine("Please enter the last name of the person " + nameS);
            lastNameS = Console.ReadLine();
            Console.WriteLine("How old is " + nameS + " " + lastNameS);
            age = int.Parse(Console.ReadLine());
            Console.WriteLine("What is the occupation of " + nameS + " " + lastNameS);
            occS = Console.ReadLine();
            Console.WriteLine("Enter more data?...Yes/No");
            Workers.Add(new GenericPerson<string>(nameS, lastNameS, age, occS));
            token = Console.ReadLine();
        }

        Console.WriteLine("You provide the following employment...\n");
        for (int i = 0; i < Workers.Count; ++i)
        {
            Console.WriteLine("{0} \n", Workers[0].Occupations[i]); 
//This line above is shown as wrong by VS2010, and intellisense does not see Occupations...
        }

    }
}
}

助けてくれてありがとう、レオ

4

1 に答える 1

3

したがって、インスタンス変数からスタティック にアクセスしようとしています。Listそれが問題です。インスタンスではなくクラスを使用して、これに直接アクセスできます。

何かのようなもの:

GenericPerson<string>.Occupations[i]

それは何の関係もありませんList-それはすべて静的な部分についてです。

于 2012-11-04T02:33:16.053 に答える