有没有办法在使用对象初始值设定项时限定属性名称?

时间:2014-08-12 09:47:20

标签: c# .net initialization

背景:类构造函数可以具有名称与其属性相同的参数,并使用this关键字解析分配。简化示例:

public MyClass(string Thing1, string Thing2)
{
  this.Thing1 = Thing1;
  this.Thing2 = Thing2;
}

对象初始化器怎么样?我想实例化一个对象,从传递给当前方法的同名参数设置属性AmountPercentage

enter image description here

如何限定AmountPercentage以区分对象属性和方法参数?

1 个答案:

答案 0 :(得分:2)

我猜你没有使用对象初始值设定项,而只是将大括号与参数分配给自身。使用对象初始值设定项,它只是有效。

这是最小的复制品:

private static void Dosomething(string Name)
{
    { Name = Name };//Assignment made to same variable error
    var test = new TestClass{ Name = Name };//Works fine
}

class TestClass
{
    public string Name { get; set; }
}