0

これは不可能かもしれませんが、文字列を関数の引数として使用し、その文字列を使用してクラスの新しいインスタンスに名前を付けたいと考えています。Visual Studio 2010 と C# XNA を使用して、google と here を使用してソリューションを検索しようとしましたが、適切なキーワードなどを使用していない可能性があります。

     public void createRace(string raceName, Element element1, Element element2, AbilityScore stat1, AbilityScore stat2, AbilityScore stat3, AbilityScore stat4)
    {
        Race temp = new Race();
        temp.raceName = raceName;
        temp.primaryElement = element1;
        temp.secondaryElement = element2;
        temp.primaryAbility = stat1;
        temp.secondaryAbility1 = stat2;
        temp.secondaryAbility2 = stat3;
        temp.weakAbility = stat4;
    }

Race の新しいインスタンスに名前を付けるときに、Race temp に temp の代わりに raceName を使用してもらいたいのですが、それが不可能な場合はお知らせください。回避策を見つけます。

4

1 に答える 1

1

私はこれを解決するために辞書を使用します。次のコードは、インスタンスへの「raceName」ベースのアクセスを許可します

Dictionary<string,Race> races = new Dictionary<string,Race>();

  public void createRace(string raceName, Element element1, Element element2, AbilityScore stat1, AbilityScore stat2, AbilityScore stat3, AbilityScore stat4)
    {
        Race temp = new Race();
        temp.raceName = raceName;
        temp.primaryElement = element1;
        temp.secondaryElement = element2;
        temp.primaryAbility = stat1;
        temp.secondaryAbility1 = stat2;
        temp.secondaryAbility2 = stat3;
        temp.weakAbility = stat4;

        races.Add(raceName,temp);
    }
于 2013-06-13T03:23:36.270 に答える