C# 简单C“;新";与语法相关的问题

C# 简单C“;新";与语法相关的问题,c#,syntax,C#,Syntax,我只是好奇如何在命令中创建新对象。(为了节省空间,当然也为了学习) 只需将这些命令组合在一起,而不需要在额外的行中添加picturebox abc=new picturebox, 像这样: this.Form.Controls.Add(new Picturebox abc) //something like that? 您必须实例化对象并将其作为参数传递给另一个对象 例如,下面是如何用两行代码编写它 Picturebox.TEST myPictureBox = new Picturebox.

我只是好奇如何在命令中创建新对象。(为了节省空间,当然也为了学习)

只需将这些命令组合在一起,而不需要在额外的行中添加picturebox abc=new picturebox, 像这样:

this.Form.Controls.Add(new Picturebox abc)  //something like that?

您必须实例化对象并将其作为参数传递给另一个对象

例如,下面是如何用两行代码编写它

Picturebox.TEST myPictureBox = new Picturebox.TEST();
Form.Controls.Add(myPictureBox);
您只是将对象传递到Form.Controls.Add方法中。所以要在一行中完成它

Form.Controls.Add(new Picturebox.TEST());
第一个示例更具可读性,还允许您在该方法块中使用myPictureBox实例。

在C#3中,您可以使用对象初始值设定项在单个语句中实例化和填充对象,如下所示:

var obj = new MyObject { MyProperty = "Foo", MyOtherProperty = 42 };
this.Form.Controls.Add(new PictureBox() { Image = XYZ, AnotherProperty = 123 });
MyClass abc =new MyClass();
abc.Name="Sukanta";
abc.City="Dhaka";

这就是你的意思吗?

我不太确定你想要的是什么,但我觉得你想做的是链接表达式,这样你就不必创建新的变量来保存实例

我想你要替换这个:

Thingy thing = new Thingy("This is a constructor call") 
this.myObject.Add(thing);
据此:

this.myObject.Add(new Thingy("This is a constructor call"));
如您所见,唯一的区别是,在第一种情况下,您将获得您创建的Thingy实例的句柄,称为“thing”,然后您可以使用它调用方法,而在另一种情况下,您不将此实例存储在变量中

如果这是您遇到的问题,我建议您从了解构造函数开始,因为如果不了解它们的作用,编写简短、紧凑的代码几乎没有什么好处


祝你好运

Petr,您可以如下方式指定新对象的属性值:

var obj = new MyObject { MyProperty = "Foo", MyOtherProperty = 42 };
this.Form.Controls.Add(new PictureBox() { Image = XYZ, AnotherProperty = 123 });
MyClass abc =new MyClass();
abc.Name="Sukanta";
abc.City="Dhaka";
这将节省您执行以下操作的时间:

PictureBox abc = new PictureBox();
abc.Image = XYZ;
abc.AnotherPropery = 123;
this.Form.Controls.Add(abc);

也许你在找这样的东西

this.Controls.Add(new PictureBox() { Image = myImage, Dock = DockStyle.Fill });
在c#中,通过命令创建对象效率不高,因为其他程序员很难理解它,而且它不会节省更多空间。我们按照如下方式创建对象:

var obj = new MyObject { MyProperty = "Foo", MyOtherProperty = 42 };
this.Form.Controls.Add(new PictureBox() { Image = XYZ, AnotherProperty = 123 });
MyClass abc =new MyClass();
abc.Name="Sukanta";
abc.City="Dhaka";
可以通过此对象添加属性,如下所示:

var obj = new MyObject { MyProperty = "Foo", MyOtherProperty = 42 };
this.Form.Controls.Add(new PictureBox() { Image = XYZ, AnotherProperty = 123 });
MyClass abc =new MyClass();
abc.Name="Sukanta";
abc.City="Dhaka";
等等。。。 如果您想在一行中初始化对象属性,那么可以像这样高效地初始化

MyClass obj=new MyClass{ Name="Sukanta" , City="Dhaka"};

它比您的要求更可取。

new就像一个赋值运算符,将右侧操作数的值赋给左侧操作数。

节省空间?你的意思是最小代码的结果相同?不要显式标记,而是在代码前放四个空格。你可以免费得到语法高亮显示。谢谢你,Martinho。我不知道。