C# 在C中调用方法语法时赋值#
很抱歉,我不知道C#是否有这种语法,也不知道语法名称。下面是我的代码,我想添加两个名字相同但年龄不同的人。所以我想知道C#是否有一个简单的语法,我可以在调用AddPerson方法时更改Age属性值。请告诉我我能不能做到?如果可以,我该怎么办?多谢各位C# 在C中调用方法语法时赋值#,c#,C#,很抱歉,我不知道C#是否有这种语法,也不知道语法名称。下面是我的代码,我想添加两个名字相同但年龄不同的人。所以我想知道C#是否有一个简单的语法,我可以在调用AddPerson方法时更改Age属性值。请告诉我我能不能做到?如果可以,我该怎么办?多谢各位 class Program { static void Main(string[] args) { //I want to do this Person p =
class Program
{
static void Main(string[] args)
{
//I want to do this
Person p = new Person
{
Name = "Name1",
//And other propeties
};
AddPerson(p{ Age = 20});
AddPerson(p{ Age = 25}); //Just change Age; same Name and others properties
//Not like this(I am doing)
p.Age = 20;
AddPerson(p);
p.Age = 25;
AddPerson(p);
//Or not like this
AddPerson(new Person() { Name = "Name1", Age = 20 });
AddPerson(new Person() { Name = "Name1", Age = 25 });
}
static void AddPerson(Person p)
{
//Add person
}
}
class Person
{
public string Name { get; set; }
public int Age { get; set; }
//And more
}
如果
Person
是记录类型,则是:通过使用。请注意,这需要C#9.0,还要注意记录类型是不可变的
public record Person( String Name, Int32 Age );
public static void Main()
{
Person p = new Person( "Name1", 20 );
List<Person> people = new List<Person>();
people.Add( p with { Age = 25 } );
people.Add( p with { Age = 30 } );
people.Add( p with { Name = "Name2" } );
}
公共记录人(字符串名称,Int32年龄);
公共静态void Main()
{
人员p=新人员(“姓名1”,20);
列表人员=新列表();
加上(p和{Age=25});
加上(p和{Age=30});
添加(p和{Name=“Name2”});
}
这是我在运行LinqPad时看到的:
你的意思是
Person1.Age=Person2.Age
因为这会将Person2的年龄分配给Person1的年龄,因为Person是一个类,如果你希望在内存中有多个具有不同值的实例,你必须在某处创建这些单独的实例。这种方法非常简单,这就是我想要的。但我运气不好,因为它需要C#9.0,所以我不能用于我当前的程序,因为我的项目现在是C#的较低版本。我会记住这一点,并申请下一个项目。非常感谢你。