C#对象完整性格式问题,声明变量与不声明变量



我是C#的新手,我想我看到了两种不同的方法来做同样的事情,或者我只是不理解。我的《穆拉赫的C#2015》一书在第369页上有一个创建2个对象实例的例子:

Product product1, product2;
product1 = new Product("something", "something else", more stuff);
product2 = new Product("something different", "something else different", more different stuff);

你也可以这样做吗?

Product product1 = new Product("something", "something else", more stuff);
Product product2 = new Product("something different", "something else different", more different stuff);

网上的一些消息来源似乎是这样做的,而其他消息来源则是另一种方式,或者就像我说的。。。也许我只是错过了什么。

在使用变量之前必须声明变量(一次(,但可以多次分配声明的对象变量。

// declare the variable
Product product1 
// assign to first product
product1 = new Product("first product");
// assign to a different product
product1 = new Product("second product");

您可以使用声明和赋值为"简写"的技术,这样您就可以组合前两行代码(不计算注释(:

//declare and assign the variable in one step
Product product1 = new Product("first product");
//re-assign the previously declared variable to a different object
product1 = new Product("second product");

您只声明一次变量,因此这会给您一个错误:

Product product1 = new Product("first product");
Product product1 = new Product("second product");

第一部分

当您需要访问范围之外的变量时,首选第一种样式,比如如果您只需要在if条件内实例化您的对象,并且还需要访问if条件外的对象,那么您将像这样执行


Product product1;
if(condition == true)
{
product1 = new Product("something", "something else", more stuff);
}
product1.isInitiated = true 

这里只有第一种类型的初始化才能工作,因为如果条件为,我们需要在外部访问它

第二部分

现在,如果您只需要访问if循环中的属性,那么第二种方法也会起作用,比如

if(condition == true)
{
Product product1 = new Product("something", "something else", more stuff);
product1.isInitiated = true 
}

在这种情况下,您可以选择在同一点实例化和初始化,或者在if循环内部执行

最新更新