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

C# 有没有办法通过另一个类访问列表元素属性,c#,arrays,C#,Arrays,我有以下代码: 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> use

我有以下代码:

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.userPropertys(listIndex).ID = newID;
set.userPropertys(listIndex).ID = newID;
set.userPropertys[listIndex].ID = newID;
public user userPropertys(int listIndex)
{
   return conf.users[listIndex];
}

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

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

也就是说,正如你在问题中所说的那样

或者

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


请注意,我对原始代码所做的唯一“修复”是将
config
类型添加到
conf
字段声明中。您不会显示
config.users
字段的任何实际初始化,如果您希望访问
列表
对象,当然需要该字段。我同意Jon关于命名约定和公开(或者更确切地说,不公开)字段作为公共成员的建议。

是的,如果
userPropertys
是一种返回类型为
user
的对象的方法,那么您可以这样做。如果是,签名如下:

var set = new settings();
set.userPropertys(listIndex).ID = newID;
set.userPropertys(listIndex).ID = newID;
set.userPropertys[listIndex].ID = newID;
public user userPropertys(int listIndex)
{
   return conf.users[listIndex];
}
其用法如下所示:

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

能否请您借助此

验证此建议请提供一个-您目前提供的代码无法编译。我还强烈建议您遵循.NET命名约定,即使只是提供小样本代码。(我还建议不要公开公共字段…)是否应该将
userPropertys
作为一种方法,在
listIndex
位置返回listitem?现在我看不到的是,如果我不将这些属性公开,如何访问它们?如果每次我都有一枚镍币,我就太接近问题,看不到明显的,那么。。。你明白了。:)“我不明白,如果我不把这些房产公开的话,如何进入它们”——我不知道你的意思。诸如
public
protected
等可访问性修饰符用于控制对成员的访问。如果希望外部代码具有访问权限,可以使用
public
。为什么不想使用
public
?我想我不明白这一点:我同意Jon关于命名约定和公开(或者更确切地说,不公开)字段作为公共成员的建议。公共错误集在哪里?与其说
public
本身是错误的,还不如说字段一般不应该作为
public
成员公开。主要的异常是
只读
字段,但即使是这样,也只是偶尔出现。参见,例如,和