假设我有这段代码。如何将smallGroups
传递到UpdatePlayer
表单。我需要能够将生成的数据带到var列表中,并在UpdatePlayer
中使用它来填充combobox
。
public class GroupsPlayers
{
public string GroupID;
public string GroupName;
}
public void Groups() {
var smallGroups = new List<GroupsPlayers>();
while(rd.Read())
{
var currentPlayer = new GroupsPlayers() {
};
smallGroups.Add(currentPlayer);
}
MessageBoxResult userResponse = MessageBox.Show(msgBoxMsg, "Groups Manager", MessageBoxButtons.YesNo);
if(userResponse == DialogResult.Yes)
{
UpdatePlayer frmPlayers = new UpdatePlayer(this, smallGroups);
}
}
如果 GroupsPlayer Type 可以在您的第二种形式中访问(您将其公开,因此它是公开的),则您只需要通过正确的构造函数传递此集合。检查下面的代码,我认为它很简单。如果您有任何问题 - 在评论中提问。
在第二种形式中创建构造函数:
public class UpdatePlayer : Form
{
List<GroupsPlayers> _GroupPlayers;
UpdatePlayer (List<GroupsPlayers> GroupPlayers)
{
_GroupPlayers = GroupPlayers; // here You are "Catching" the value You have passed in first form and assigning it to _GroupPlayers property
}
}
在第一种形式中:
UpdatePlayer secondForm = new UpdatePlayer (smallGroups);
关于"var",要知道的重要一点是它不是一个变量类型。它的类型是在编译时静态确定的。
var smallGroups = new List<GroupsPlayers>();
与
List<GroupsPlayers> smallGroups = new List<GroupsPlayers>();
这意味着您的 UpdatePlayer 窗体必须将它的 List 或子类作为其构造函数中的参数。例如,它可以改用 IList。"var"只是为了保存类型以进行延迟,或者使重构更清晰。