C#中向变量传递参数的较短方法?
假设我有如下代码:C#中向变量传递参数的较短方法?,c#,C#,假设我有如下代码: public class Person { public string Name, Job; public int Age; public Person(string name, int age, string job) { Name = name; Age = age; Job = job; } } 是否有一种较短的方法来执行此操作,而不是对每个参数执行“[Variable]=[Arg
public class Person
{
public string Name, Job;
public int Age;
public Person(string name, int age, string job)
{
Name = name;
Age = age;
Job = job;
}
}
是否有一种较短的方法来执行此操作,而不是对每个参数执行“[Variable]=[Argument]
”?使用对象初始值设定项
由于属性是公共的,因此可以在实例化之后立即设置它们:
var person = new Person
{
Name = value1,
Age = value2,
Job = value3
}
课程本身将是:
public string Name, Job {get; set;}
public int Age {get; set;}
public Person()
{
}
注意不要使用公共字段因为没有检查,为什么不在构造函数中省略参数,将字段转换为属性,并将其init留给调用代码呢
Person person = new Person()
{
Name = "elseytd",
Age = 24,
Job = Jobs.Programmer
};
3行最简单的代码可能太多了?您应该使用属性而不是公共字段though@TimSchmelter这也可能是一个具有100个属性的类的简化示例。将变量名更改为N,a&J,将参数名更改为N,a&J。@fubo:我从未见过(设计良好的)类的构造函数中需要100个参数,如果它们只需在VS中添加一个功能即可自动为您生成构造函数,这将是向前迈出的一大步。(基本上:使用“对象初始值设定项”)这难道不会导致更多的代码(每次实例化都需要指定字段名和值)每次都会重复构造函数的内容吗。。如果所有参数都是必需的,它还可能导致无法正确实例化。@PaulF,它最终是相同数量的代码,但在类的构造函数中要少得多,而类的构造函数可能只是一个DTO。它还为初始化添加了一些明确性,这意味着您100%不会因为错误而交换两个字符串。@mjwills对于程序员来说,还有一件很好的事情要做,.Great idea@AgentFire!