アイテム オブジェクトの 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)
{
...
}
}