C#中的新关键字为-1

时间:2015-03-26 12:54:35

标签: c# wpf

这是我第一次看到这种声明。我在谷歌找不到太多信息。在其中一个现有的WPF应用程序中,用户尝试创建一个新窗口,他将实例化下面的类。什么" -1"意思?到底是做什么的?

ProductViewModel viewModel = new ProductViewModel(-1);

2 个答案:

答案 0 :(得分:5)

它只是构造函数的一个参数...当您创建一个类时,您可以指定零(如果您不创建至少一个,则为您创建默认的空构造函数)或更多构造函数。在构造函数中,您通常会为要使用的类设置变量。 -1通常意味着未设置值(如默认值),但我相信在这种情况下,最好使用可选参数创建一个构造函数,如下所示:

public class ProductViewModel
{
     // this is our modified constructor
     public ProductViewModel(int productId = -1)
     {
           // do something with the values, probably set some internal field
     }
}

使用new关键字创建类的实例时,始终会调用构造函数。


根据注释,构造函数的参数声明如下: params object[] args。说I take variable number of parameters只是一种奇特的语法。您可以在C#reference:Params keyword

上详细了解params

答案 1 :(得分:0)

取决于ProductViewModel中存在的代码。我认为这个-1表示程序员打算创建一个新的Product。此-1应为ProductId。如果Id大于0,则将加载产品的详细信息。如果Id为-1,则应创建新的作品。

这就是我对这个构造函数参数的看法。