init块内的错误:使用未分配的局部变量

时间:2016-06-20 05:42:03

标签: c#

我可以在初始块中给出实例名称。我在使用以下代码时收到错误。 "使用未分配的局部变量"

代码阻止

Item item = new Item()
{
   Qty1 = item.Qty1 + item.Qty2
}

1 个答案:

答案 0 :(得分:0)

假设你有一个Item类:

public class Item
{
    // use constructor
    public Item()
    {
        // set your default values here
        this.Qty1 = 0; // example
        this.Qty2 = 0;
    }

    // declare both quantity item properties here (including nullables)
    public int Qty1 { get; set; }
    public int Qty2 { get; set; }
}

然后,访问类中的属性,假设已设置值:

Item item = new Item()
{
    Qty1 = item.Qty1 + item.Qty2
}

为了防止NullReferenceException,在实例化块中分配Qty1时,需要将int声明为int?

编辑:我看到OP可能需要所谓的多个构造函数,一个用于分配默认值的空参数,另一个用于对Qty1属性执行添加:

public Item(int Qty1, int Qty2) : this()
{
    this.Qty1 = Qty1 + Qty2;
}

并称之为:

Item item = new Item(Qty1, Qty2); // assume Qty1 & Qty2 are method parameters here

CMIIW。