gpt4 book ai didi

c# - 如何从另一个类访问一个类中的字段?

转载 作者:行者123 更新时间:2023-12-04 01:02:59 24 4
gpt4 key购买 nike

请注意,这不是继承或接口(interface)。

我有一个类 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?

我试图在实例化时通过引用 HP 来传递 Level

public class HP
{
private ref int Level;

public A(ref i)
{
Level=i;
}
}

但我想让 A 尽可能简单和干净。

我不想在创建时通过关卡的原因是 Level 是一个不断变化的有值(value)的东西,我将不得不“更新” HP每次怪物获得等级或其他东西时,这不是一种有效的做事方式。

Level还有其他的东西,比如AttackDamage

我目前在HPAttackDamage等中有一个方法,将Level作为一个参数。

public int Value(int lv)
{
return Base+10*lv;
}

但是根据我所知道的一点 SOLID 原则,这是一个非常糟糕的编码!

最佳答案

看来你所说的HP更像是一个HPCalculator,负责根据这个怪物的等级和 future 可能的其他数据计算怪物的生命值,我认为对于这样的 HPCalculator 来说,访问它计算生命值的 Monster 似乎至关重要。

C# 中,类是通过引用而不是值来完成的,这意味着您可以毫无问题地拥有这样的东西:

public class Monster{
public HP hp;
}

public class HP{
public Monster monster;
}

关于c# - 如何从另一个类访问一个类中的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67581607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com