【问题标题】:Get-Set accessors for array property, with index handled数组属性的 Get-Set 访问器,处理索引
【发布时间】:2017-09-15 01:22:41
【问题描述】:

我有这个类的属性

public object[] array { get; set; }

我能够获取和设置整个数组,以及更改数组中的各个项目。

如何使用手动 get-setter 来实现这一点?

这 3 个帖子都没有答案:

How do define get and set for an array data member?

Array property syntax in C#

Get/Set Method for Array Properties

涵盖我需要做的事情。

object[] array;
public object[] Array {
    get { return array; }
    set { array = value; }
}

将允许我获取和覆盖整个数组,但我希望拥有索引访问。

【问题讨论】:

标签: c# arrays


【解决方案1】:
public sealed class ArrayWrapper<T> {
   private readonly T[] _array;
   public ArrayWrapper(T[] array) {
      if (array == null) throw new ArgumentNullException(nameof(array));
      _array = array;
   }

   public T this[int i] {
      get { return _array[i]; }
      set { _array[i] = value; }
   }
}

【讨论】:

  • 你觉得这样更简单吗? stackoverflow.com/a/424677/7759514
  • 这取决于你想要做什么。你想做什么?
  • 设置/获取值时调用函数。我想我会先尝试 get/setValue 函数
  • 嗯,你可以在我上面放置的 set/get 代码中运行任何你想要的东西。这怎么不简单?
  • 我的意思是它可能过于复杂。不过,它只有大约 4 行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-10
  • 2011-06-12
  • 2021-03-29
相关资源
最近更新 更多