请注意,这不是继承或接口。
我有一个名为 HP
的类。
public class HP
{
public int Base;
public int Value
{
get
{
//Need to access Monster.Level to calculate total HP.
}
}
}
有一个类名为Monster
,调用了HP
方法。
public class Monster
{
public HP hp;
public int Level;
}
我如何从HP访问Monster.Level?
我尝试在实例化时通过引用将Level
传递给HP
。
public class HP
{
private ref int Level;
public A(ref i)
{
Level=i;
}
}
但我希望保持A尽可能简单和清晰。
我不想在创建时传递等级的原因是Level
是一个不断变化的值,每当怪物升级或发生其他变化时,我就必须"更新"HP
,这是一种效率低下的做法。
而且还有其他访问Level
的内容,比如Attack
和Damage
等。
目前我在HP
、Attack
、Damage
等中都有一个方法,将Level
作为参数。
public int Value(int lv)
{
return Base+10*lv;
}
但根据我所知道的一点SOLID原则,这是非常糟糕的编码!
A
访问B.i
解决什么问题吗? - EnigmativityB
的实例传递到A::DoSomething()
或在A
实例化期间传递到A
中是否存在任何挑战? - SisirHP.Value
不应该是只读属性,而应该是一个带有参数level
的函数。就这么简单。 - Fildor