Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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中一次设置多LPLE属性#_C#_.net_Winforms_Properties - Fatal编程技术网

C# 在C中一次设置多LPLE属性#

C# 在C中一次设置多LPLE属性#,c#,.net,winforms,properties,C#,.net,Winforms,Properties,我意识到,当我想在c#中为多个对象/控件(这里是标签)设置相同的属性时,我必须经常键入相同的代码。 这通常是这样的: string s = "one attribute"; label1.Text = s; label2.Text = s; label3.Text = s; label4.Text = s; label5.Text = s; string s = "one attribute"; (label1 && label2 && label3 &

我意识到,当我想在c#中为多个对象/控件(这里是标签)设置相同的属性时,我必须经常键入相同的代码。 这通常是这样的:

string s = "one attribute";
label1.Text = s;
label2.Text = s;
label3.Text = s;
label4.Text = s;
label5.Text = s;
string s = "one attribute";
(label1 && label2 && label3 && label4 && label5).Text = s;
难道没有任何方法可以用更少的代码更快地完成这项工作吗? 我想象的是这样的:

string s = "one attribute";
label1.Text = s;
label2.Text = s;
label3.Text = s;
label4.Text = s;
label5.Text = s;
string s = "one attribute";
(label1 && label2 && label3 && label4 && label5).Text = s;
回答:

string s = "one attribute";
label1.Text =
label2.Text =
label3.Text =
label4.Text =
label5.Text = s;

你可以像这样在一行中完成这一切

label1.Text = label2.Text = label3.Text = label4.Text = label5.Text = "one attribute";
编辑:如果您希望在数组中保留标签,那么这里有另一种方法可以做到这一点,而不必每次都实际写出foreach循环

Label[] labels = new[] { label1, label2, label3, label4, label5 };
Array.ForEach(labels, x => { x.Text = "one attribute"; });

你可以像这样在一行中完成这一切

label1.Text = label2.Text = label3.Text = label4.Text = label5.Text = "one attribute";
编辑:如果您希望在数组中保留标签,那么这里有另一种方法可以做到这一点,而不必每次都实际写出foreach循环

Label[] labels = new[] { label1, label2, label3, label4, label5 };
Array.ForEach(labels, x => { x.Text = "one attribute"; });

我知道您可以分配多个变量,如:

label1.Text = label2.Text = "Whatever";
但是我讨厌这个。在将来的某个时候,您可能希望重构代码,而不是以这种方式设置变量

我宁愿:

String InitStr = "Whatever";
label1.Text = InitStr;
label2.Text = InitStr;
label3.Text = InitStr;
label4.Text = InitStr;
将来,如果您决定更改label3的值,那么它会更干净

String InitStr = "Whatever";
label1.Text = InitStr;
label2.Text = InitStr;
label3.Text = "new whatever";
label4.Text = InitStr;

我知道您可以分配多个变量,如:

label1.Text = label2.Text = "Whatever";
但是我讨厌这个。在将来的某个时候,您可能希望重构代码,而不是以这种方式设置变量

我宁愿:

String InitStr = "Whatever";
label1.Text = InitStr;
label2.Text = InitStr;
label3.Text = InitStr;
label4.Text = InitStr;
将来,如果您决定更改label3的值,那么它会更干净

String InitStr = "Whatever";
label1.Text = InitStr;
label2.Text = InitStr;
label3.Text = "new whatever";
label4.Text = InitStr;
另一种方法:

foreach(var label in new [] { label1, label2, label3, label4, label5 })
{
    label.Text = "one attribute";
}
如果在多个位置执行此操作,则将该阵列存储在某个位置可能更方便:

IEnumerable<Label> labelsToUpdate = new [] { label1, label2, label3, label4, label5 };

foreach(var label in labelsToUpdate)
{
    label.Text = "one attribute";
}    
IEnumerable labelsToUpdate=new[]{label1,label2,label3,label4,label5};
foreach(标签更新中的var标签)
{
label.Text=“一个属性”;
}    
另一种方法:

foreach(var label in new [] { label1, label2, label3, label4, label5 })
{
    label.Text = "one attribute";
}
如果在多个位置执行此操作,则将该阵列存储在某个位置可能更方便:

IEnumerable<Label> labelsToUpdate = new [] { label1, label2, label3, label4, label5 };

foreach(var label in labelsToUpdate)
{
    label.Text = "one attribute";
}    
IEnumerable labelsToUpdate=new[]{label1,label2,label3,label4,label5};
foreach(标签更新中的var标签)
{
label.Text=“一个属性”;
}    

.Text
是一个属性<代码>属性是其他的东西。@puropoix:除了“属性”是.NET调用字段或属性的正确形式OOP术语之外。。。相互冲突的术语总是令人困惑。如果您经常要做这样的事情,您应该将所有控件添加到集合中并对其进行迭代。
。Text
是一个属性<代码>属性是其他的东西。@puropoix:除了“属性”是.NET调用字段或属性的正确形式OOP术语之外。。。相互冲突的术语总是令人困惑。如果你经常要做这样的事情,你应该将所有控件添加到集合中,并对它们进行迭代。谢谢,这就是我想要的!这太容易了,我甚至都没有意识到这一点。但它确实如此!这正是我所需要的D我唯一不能相信的是我收到了多少赞成票,顺便说一句,如果你设置了很多文本属性,另一种方法是创建一个专门用于这样做的方法。谢谢,这就是我想要的!这太容易了,我甚至都没有意识到这一点。但它确实如此!这正是我所需要的D我唯一不能相信的是我收到了多少赞成票,顺便说一句,如果你设置了很多文本属性,另一种方法是创建一个专门用于这样做的方法。