【问题标题】:Using get[int index] and set[int index] to update values in an array使用 get[int index] 和 set[int index] 更新数组中的值
【发布时间】:2026-01-15 16:20:02
【问题描述】:

我正在尝试提供一种方法来更新 vala 中数组内的值,例如 myClass.Channels[10]=15,但是,我在 vala 中找不到执行此操作的方法。以下在 C# 中工作,我会假设 vala 是相似的。

private int[] _channels;

public int[] Channels
{
    get[int index]
    {
        return _channels[index];
    }
    set[int index]
    {
        _channels[index] = value;
    }
}

有没有人知道是否有办法做到这一点?

【问题讨论】:

  • 我不认识 Vala,但我猜 return Channels[index]; 应该是 return _channels[index];
  • @hammar 当然,谢谢,尽管get[int index]set[int index] 行上发生了错误,因此仍未修复。

标签: vala


【解决方案1】:

Vala 支持索引器,请参阅 http://live.gnome.org/Vala/ValaForCSharpProgrammers#Indexers

只能用于类,不能用于数组。

如果这对你真的有用,你应该打开一个错误(甚至提供一个补丁!)

【讨论】:

  • 谢谢你,很遗憾这是不可能的,但这样做实际上比使用数组更符合我的目标。