我正在做一个项目,我有一个对象,在实例化后,将有大量的值(20+)传递给它。我知道我可以创建一个可以接受所有值的构造函数,但我正在寻找一种更清洁/更有效的方法来做到这一点。
从正确的角度来看,对象是游戏中的角色,经常创建新的实例。分配的值是随机生成的属性。
具有大量参数的构造函数是最好的方法吗?还是有我不知道的更好的方法来做到这一点?任何建议将不胜感激。
编辑:当新游戏开始时,List<Character>
创建一个 for 循环创建 10 个字符实例并将它们添加到列表中。
最佳答案
您可以创建一个定义游戏角色的调用。让用户填充该类并将其作为参数传递给您的类。
像这样,
public class CharecterInfo
{
public string Name {get;set;}
public int Power {get;set;}
public int Health{get;set;}
}
public class Charecter
{
public Charecter(CharecterInfo charecterInfo)
{
//import values
}
}
我会避免使用公共(public)属性,因为您的类可以在未正确初始化(处于错误状态)时使用,这是构造函数的工作。在允许用户继续之前,您应该使用构造函数并验证输入。
关于c# - 将大量参数传递给构造函数的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16531762/