gpt4 book ai didi

c# - 有没有办法通过另一个类访问列表元素属性

转载 作者:行者123 更新时间:2023-11-30 15:19:01 25 4
gpt4 key购买 nike

我有以下代码:

public class settings
{
public appConfig conf = new appConfig();

public void getUserID(int listIndex, int newID)
{
conf.users[listIndex].ID = newID;
}

private class appConfig {
public List<user> users;

public appConfig()
{
users = new List<user>();
}
}
}

public class user {
public int ID;
}

所以我使用的代码

var set = new settings();
set.setUserID(0, 20);

如何更改代码以便我可以像这样访问它:

var set = new settings();
set.userPropertys(listIndex).ID = newID;

我应该如何声明 userPropertys ?是方法还是新类还是什么?

最佳答案

如果我理解正确,不必调用 setUserID()方法,您需要一种方法来检索 user对象并直接修改其属性。至少有两种明显的方法可以做到这一点(为清楚起见,保留代码中拼写错误的名称):

public class settings {
public config conf = new config();
public void setUserID(int listIndex, int newID) {
conf.users[listIndex].ID = newID;
}

public user userPropertys(int index) { return conf.users[index]; }

private class config {
public List<user> users;
}
}

这样使用:

set.userPropertys(listIndex).ID = newID;

即完全按照您在问题中显示的那样。

或者……

public class settings {
public config conf = new config();
public void setUserID(int listIndex, int newID) {
conf.users[listIndex].ID = newID;
}

public List<user> userPropertys { return conf.users; }

private class config {
public List<user> users;
}
}

这样使用:

set.userPropertys[listIndex].ID = newID;

即与方括号索引器语法一起使用。

请注意,我对您的原始代码所做的唯一“修复”是添加 config输入 conf字段声明。您没有显示 config.users 的任何实际初始化字段,如果您希望访问 List<user>,当然需要该字段目的。我同意 Jon 关于命名约定和公开(或更确切地说,不公开)字段作为公共(public)成员的建议。

关于c# - 有没有办法通过另一个类访问列表元素属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42689351/

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