C# 使用在另一个类中创建的对象
我试图在一个类中使用在另一个类中创建的对象。有什么办法吗?我向您展示代码: 在这个名为Item的类中,我在末尾创建了一个名为spellwand的对象C# 使用在另一个类中创建的对象,c#,C#,我试图在一个类中使用在另一个类中创建的对象。有什么办法吗?我向您展示代码: 在这个名为Item的类中,我在末尾创建了一个名为spellwand的对象 namespace RPG.Entities { public class Item { public string Name { get; set; } public int Damage { get; set; } public int MagicalDamage { get; s
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);
}
现在,在这个类角色中,我创建了下一个方法:
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);
}
}
}
有什么办法吗
顺便说一句,战斗中出现的错误是“对象咒语在当前上下文中不存在”。我想你需要做的是在故事中创建如下列表:
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)
}
}
}
理想情况下,你会有一个ItemRepository类来检索你所有的游戏项目,但希望这能让你了解开始的结构。为什么你想在
项目
类中创建一个项目
?在外面创建它,你就可以使用它了。您的项
类包含一个构造函数,允许您根据需要创建,那么为什么要创建一个内部构造函数呢?您需要了解;这是一个基本的编程概念。我想在item类中创建所有的项,因为它们将有很多。。。我想给他们打个电话。。。如果可能的话,但是您的列表
集合在Item类之外。在类中创建它们不会花费更少的代码
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)
}
}
}
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;
}
}