Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C中带有-1的新关键字#_C#_Wpf - Fatal编程技术网

C# C中带有-1的新关键字#

C# C中带有-1的新关键字#,c#,wpf,C#,Wpf,这是我第一次看到这种声明。我在谷歌上找不到多少信息。在一个现有的WPF应用程序中,当用户试图创建一个新窗口时,他实例化了如下所示的类。“-1”是什么意思?它到底是干什么的 ProductViewModel viewModel = new ProductViewModel(-1); 它只是构造函数的一个参数。。。创建类时,可以指定零(如果不创建至少一个构造函数,则会为您创建默认的空构造函数)或多个构造函数。在构造函数中,您通常设置类要使用的变量-1通常意味着未设置值(如默认值),但我认为在这种情

这是我第一次看到这种声明。我在谷歌上找不到多少信息。在一个现有的WPF应用程序中,当用户试图创建一个新窗口时,他实例化了如下所示的类。“-1”是什么意思?它到底是干什么的

ProductViewModel viewModel = new ProductViewModel(-1);

它只是构造函数的一个参数。。。创建类时,可以指定零(如果不创建至少一个构造函数,则会为您创建默认的空构造函数)或多个构造函数。在构造函数中,您通常设置类要使用的变量
-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对象[]args
。这只是一个花哨的语法,用来表示
我接受可变数量的参数。您可以在C#参考:

上了解有关
params
的更多信息,具体取决于
ProductViewModel
中现有的代码。我认为这个
-1
表明程序员打算创建一个新的
产品。此
-1
应为
产品ID
。如果存在大于0的
Id
,则将加载产品的详细信息。如果Id为
-1
,则应创建新产品


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

只要看一下
ProductViewModel
的定义就知道这些参数是什么。这不是一个新的关键字,它只是一个方法参数……第一个答案更好:-D@walther谢谢你的回答。它被声明为public ProductViewModel(params object[]args){//}@WPFRookie,好的,我也会用这个信息更新答案。@walther params关键字链接很有用。谢谢Again@WPFRookie,不客气。如果这回答了您的问题,您可以随时将其标记为
answer
,以备将来参考。在这样的问答网站上,这被认为是一种很好的做法。