在Windows窗体中使用一个声明设置多个属性(C#)

有没有办法在Windows窗体C#中的一个声明设置多个属性?

我正在制作一个游戏的技能计算器,我希望能够做到这样的事情:

someControl.Text = "some text", .BackgroundImage = "someImage.jpg"; 

有没有可能做这样的事情?

Solutions Collecting From Web of "在Windows窗体中使用一个声明设置多个属性(C#)"

在VB中,你可以使用“WITH”关键字。 在C#中最接近的是构造函数,它需要一个对象初始值设定项。

 var someControl = new Control() { Text = "SomeText", BackgroundImage "someImage.jpg" }; 

但是不,我不认为有什么方法可以做你在C#中所要求的。

你在说什么是一个流利的界面[维基百科] 。 不幸的是,在C#中没有办法以流畅的方式链接属性。 类型初始化块可以用来实现几乎相同的效果,但只有当你构造的对象。 因为它是WinForms,所以构造可能在设计器生成的代码中发生。 最好不要与那个猴子。

但是,如果您愿意,您可以使用方法创建一个流畅的界面:

 class Widget { public Widget SetFoo(int foo) { // Set the Foo property or whatever... return this; } public Widget SetBar(int bar) { // Set the Bar property or whatever... return this; } } 

然后,你可以像这样使用类:

 var w = new Widget().SetFoo(23).SetBar(42); 

您甚至可以使用扩展方法为.NET框架类型和控件执行此操作。 但是,除非你使用了很多,否则将这样的接口添加到框架类可能是矫枉过正的。

如果你创建 (或者说, 构造SomeControl ,你可以使用初始化器;

 myControl = new SomeControl { Text = "blablabla", BackgroundImage = "someimage.jpg" }; 

否则你的答案是一个简单的无聊的“不”…