1

それで!C#配列があります。

そして、配列から要素を返す関数があるので、その参照からのデータにアクセスできます。わーい!

その参照を変更してから配列内の元の要素に影響を与えるとしたら、非常に便利です。これは静的変数が行うことですか?それを行う方法はありますか?実行する方法?例えば:

関数Aはアイテムを検索します。

public TutorialPopupBehavior GetBehavior(string behaviorName) {
        foreach(TutorialPopupBehavior beh in _tutorialItems) {
            if(beh._popupName == behaviorName) {
                return beh;
            }
        }
        print ("Could not find behavior of name " + behaviorName);
        return null;
    }

そして、それを関数Bに返します。これにより、理想的には、返されたアイテムのプロパティを変更できるようになります。

public void SetTutorialItem(bool state, string itemName) {
        TutorialPopupBehavior beh = GetBehavior(itemName);
        if(beh == null) {
            print ("No tutorial item found, so can't set it to " + state);
            return;
        }   
        //idealistic code: beh._isShown = true;

    }

その要素の_isShownプロパティは、元の_tutorialItems配列で永続的に変更されます...問題を回避するために、これをどのように達成するか、または異なる設計をしますか?私が尋ねる理由は、検索する配列が多数あるためです。同じクラスに同じ配列のセットを複数回検索するように依頼して、コードを複雑にしたくないからです。

4

1 に答える 1

1
 public  void GetBehavior(string behaviorName, ref TutorialPopupBehavior b) {
            foreach(TutorialPopupBehavior beh in _tutorialItems) {
                if(beh._popupName == behaviorName) {
                    b = beh;
                     Return;
                }
            }
            print ("Could not find behavior of name " + behaviorName);
            b = null;
        }

このmsdnの記事を読む

于 2013-01-01T06:26:36.097 に答える