c# - 使用在另一个类中创建的对象
问题描述
我试图在一个类中使用在另一个类中创建的对象。有没有办法做到这一点?我给你看代码:
在这个名为 Item 的类中,我最后创建了一个名为 spellwand 的对象。
namespace RPG.Entities
{
public class Item
{
public string Name { get; set; }
public int Damage { get; set; }
public int MagicalDamage { get; set; }
public int Defense { get; set; }
public int Resistance { get; set; }
public Item(string name, int damage, int magicalDamage, int defense, int resistance)
{
Name = name;
Damage = damage;
MagicalDamage = magicalDamage;
Defense = defense;
Resistance = resistance;
}
Item spellwand = new Item("Spellwand", 0, 12, 0, 0);
}
现在,在这个 Character 类中,我创建了下一个方法:
using RPG.Entities;
using System.Collections.Generic;
using System;
namespace RPG.Entities
{
public class Character
{
public List<Item> Item { get; set; }
public void AddItem(Item item)
{
Item.Add(item);
}
}
}
很酷,现在在 Battle 类中,我想将在 Item 类中创建的对象称为“spellwand”。
namespace RPG.Entities
{
public class Story
{
public void Battle()
{
Character eskilie = new Character("Eskilie", "Magician");
eskilie.AddItem(spellwand);
}
}
}
有没有办法做到这一点?
顺便说一句,Battle 中出现的错误是“当前上下文中不存在对象魔法棒”。
解决方案
我认为您需要做的是将 Story 中的项目创建为这样的列表:
namespace RPG.Entities
{
public class Story
{
// Store all your possible game items here
protected List<Item> GameItems = new List<Item>();
public Story()
{
// Add your game items
GameItems.Add(new Item("Spellwand", 0, 12, 0, 0));
GameItems.Add(new Item("Axe", 0, 14, 0, 0));
}
public void Battle()
{
Character eskilie = new Character("Eskilie", "Magician");
// Add item
var spellwand = GameItems.Where(i => i.name == "Spellwand").FirstOrDefault();
eskilie.AddItem(spellwand)
}
}
}
然后从您的 Item 类中删除新项目
public class Item
{
public string Name { get; set; }
public int Damage { get; set; }
public int MagicalDamage { get; set; }
public int Defense { get; set; }
public int Resistance { get; set; }
public Item(string name, int damage, int magicalDamage, int defense, int resistance)
{
Name = name;
Damage = damage;
MagicalDamage = magicalDamage;
Defense = defense;
Resistance = resistance;
}
}
理想情况下,您应该有一个 ItemRepository 类来检索您的所有游戏项目,但希望这能让您对开始的结构有所了解。
推荐阅读
- c++ - 圆弧函数 c++
- mongodb - 如何比较不同 BSON 类型的两个值?
- javascript - 动态创建的 html 链接不起作用
- flutter - 创建稍小于屏幕宽度的 RaisedButton
- angular - 如何控制取消订阅 Ionic In app Purchase
- windows - 在函数外使用变量
- javascript - 为什么 query-ui 可排序功能无法正常工作?
- android-studio - 如何在 Linux Mnt 19.3“Tricia”上执行 .sh 文件
- reactjs - 使用条件监听器响应 UseEffect 和 Unsubscribe 承诺!(优化 Firestore 快照)
- node.js - GCP 中的问题:Google Cloud Platform 中的 getaddrinfo ENOTFOUND 问题