【发布时间】:2016-09-29 16:12:51
【问题描述】:
第一次发布问题,因为到目前为止,我一直在这里找到我正在寻找的答案,所以请耐心等待。 :)
关于这个问题,我正在测试我在控制台应用程序中制作的界面,以便在游戏中使用。 我得到了一个角色的接口,也为它做了一个类。在我的主代码中,我可以成功地从我的类(Character1Class)中调用我的“sCharacterName”。
在我的 (SwordClass) 中,我没有装备武器的空间,我希望它显示如下:“(sCharacterName) 已装备 (sWeaponName)。” 但是每当我尝试时,它都会显示为空格而不是名称。 这是我的代码的一部分:
namespace ConsoleInterfaceTest
{
class Program
{
public interface ICharacters
{
// The name of the character
string sCharacterName { get; set; }
}
public interface IWeapon
{
// The name of the weapon
string sWeaponName { get; set; }
void Equip();
}
public class Character1Class : ICharacters
{
// The name of the character
public string sCharacterName { get; set; }
public Character1Class(string v)
{
sCharacterName = ("ZeeAars");
}
}
public class SwordClass : IWeapon, Characters.ICharacters
{
// The name of the weapon
public string sWeaponName { get; set; }
public string sCharacterName { get; set; }
public SwordClass(string sName)
{
sWeaponName = sName;
}
public void Equip()
{
Console.WriteLine(sCharacterName + " equiped " + sWeaponName + ".");
}
}
public static void Main (string[] args)
{
Characters.Character1Class character1 = new Characters.Character1Class("");
character1.CharacterDamage(50);
Weapons.SwordClass sword = new Weapons.SwordClass("TestSword");
sword.Equip ();
Console.ReadKey();
}
}
}
在此先感谢,这几天真的让我头疼了几天:D
【问题讨论】:
-
我无法真正理解您要做什么,但我感觉您对接口的用途和作用有完全错误的想法 -没有任何东西可以设置你的剑类的
sCharacterName属性——为什么Sword会是ICharacter?查找有关接口的介绍性教程可能是个好主意(尽管我不确定它们是否能解决您的问题)。 -
按照您的设置方式,武器拥有角色。这会在以后给你带来很多问题。
-
知道我希望
character.Equip(sword),而不是sword.Equip()(与角色没有关联)可能很有用。 -
CharacterDamage()未定义,您的示例无法编译。同意别人的观点,为什么剑会实现ICharacter? -
@DGibbs 我怀疑他认为让两个类实现相同的接口会使它们共享属性(因此建议去了解接口的工作原理)。