-1

アイテム オブジェクトの OnBuy と OnSell のデリゲートを取得しました。問題は、いくつかのアイテムをコピーして貼り付け、各 OnBuy と OnSell のキーワード名を変更せず、「this」キーワードを使用しようとすることです。追加しました。私の関数をアイテムクラスに追加しましたが、コピーペースト後にオブジェクト名を変更しないとアクセスできません。これが私のコードです:

        public static Item item = new Item
        {
            Name = "Item",
            ID = 1,
            Price = 50,
            Info = "Awesome!",
            OnBuy = delegate(Client cli)
            {
                // Invalid
                this.BuyTitle(cli);

                // Still can't change
                this.Name = "AAA";

                return true;
            },
            OnSell = delegate(Client cli)
            {
                // Invalid
                this.SellTitle(cli);

                // Still can't change
                this.Name = "AAA";

                return true;
            }
         }

アイテムクラスは次のとおりです。

    public class Item
    {
        public string Name { get; set; }

        public int ID { get; set; }

        public int Price { get; set; }

        public string Info { get; set; }

        public Func<Client, bool> OnBuy { get; set; }

        public Func<Client, bool> OnSell { get; set; }

        public bool BuyTitle(Client cli)
        {
            ...
        }

        public bool SellTitle(Client cli)
        {
            ...
        }
    }
4

1 に答える 1