c# - 使用 C# 确定正在设置数组属性的哪个索引

标签 c# arrays properties indexing

我正在创建一个 OPC 客户端,可以读取电气设备的标签。这是通过在 OPC 组中设置项目来完成的。我想要一个 bool[] 数组属性来将项目设置为事件或非事件。我需要知道该属性 bool[] 的哪个索引用于设置该属性,以便我可以使用它来激活该项目。我可以只使用一个方法,但更喜欢一个属性。 _theGroup 是保存项目的 OPC 组。

private bool[] _ItemActive;    
public bool[] itemActive {
    get { return _ItemActive; }
    set {
        if (_theGroup != null) {
            int itemIndex = ?? // I don't know how to find property index access by user
            int itemHandle = itemHandles[itemIndex]; //uses index to discover handle
            _theGroup.SetActiveState(itemHandle, value, out err); // use handle to set item active
        }
        _ItemActive = value;
    }
}

用户会做这样的事情。

opcClient.itemActive[3] = false;

我需要能够发现 3 并将其插入到上面所示的 bool[] 数组的 setter 中的 itemIndex

最佳答案

您可以使用覆盖的索引器运算符创建自定义集合,您可以在其中执行自定义逻辑。但创建一个 setter 方法 SetItemActivation(int,bool) 似乎是一个更干净的解决方案。

关于c# - 使用 C# 确定正在设置数组属性的哪个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17244063/

相关文章:

c# - 是否有可靠的方法从字符串中解析用户名和域?

c# - .NET 程序集中 BadImageFormatException 的其他原因?

c# - Dapper.NET 连接/查询最佳实践

Python "Hangman"代码

javascript - 根据嵌套键对数组进行排序

c# - 使用反射来识别具有给定装饰器的属性

c# - 为什么我不能使用 LINQ to SQL 将数据更新到数据库中?

javascript - 我创建了一个 Handsontable 并想要渲染 Json 数据?

java - 使用 ints 作为 prop.setProperty()

ios - 快速覆盖属性