gpt4 book ai didi

c# - 如何在 C# 中一次分配多个对象属性?

转载 作者:行者123 更新时间:2023-11-30 14:06:41 25 4
gpt4 key购买 nike

背景

我将 DataGridView 中的一些行转换为实体对象。在转换过程中,我重置了一些值。由于“基本”数据来自当前 DataGridViewRowDataBoundItem,因此使用对象初始化器 不是我的选择正在寻找,我不想再次分配从 DataBoundItem 转换的第一个对象的每个值(冗余)。

所以我的问题是:是否可以一次分配多个对象属性,如果可以,您如何实现?

研究

我发现了以下问题,但没有一个能解决我的问题:

Assigning multiple variables at once in c#

Assign multiple variables at once

Setting multiple properties with one declaration in Windows Forms (C#)

代码

foreach (DataGridViewRow CurrRow in DataGridView.Rows)
{
SomeObject SomeObj = (SomeObject) CurrRow.DataBoundItem;
SomeObj.PropertyA = 0;
SomeObj.PropertyB = 0;
SomeObjCollection.Add(SomeObj);
}

我尝试过的

用逗号分隔要分配的属性(在逗号处给出语法错误):

TimeEntries.Hours, TimeEntries.Expenses = 0;

最佳答案

您可以使用 = 运算符在链中分配它们:

TimeEntries.Hours = TimeEntries.Expenses = 0;

就好像你会倒着读这个陈述。

在你的循环中,它看起来像这样:

foreach (DataGridViewRow CurrRow in DataGridView.Rows)
{
SomeObject SomeObj = (SomeObject) CurrRow.DataBoundItem;
SomeObj.PropertyA = SomeObj.PropertyB = 0;
SomeObjCollection.Add(SomeObj);
}

重要提示:

如果您正在处理引用类型,这将只分配 1 个引用给不同的属性。所以改变其中之一会影响所有其他属性!

关于c# - 如何在 C# 中一次分配多个对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45961068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com