gpt4 book ai didi

c# - 二维数组属性

转载 作者:行者123 更新时间:2023-11-30 14:17:23 25 4
gpt4 key购买 nike

是否可以为返回数组特定元素的二维数组编写属性?我很确定我不是在寻找索引器,因为它们数组属于静态类。

最佳答案

听起来您想要一个带有参数的属性——这基本上就是索引器。但是,您不能在 C# 中编写静态索引器。

当然,您可以只编写一个返回数组的属性 - 但我假设您出于封装的原因不想这样做。

另一种选择是编写 GetFoo(int x, int y)SetFoo(int x, int y, int value) 方法。

另一种替代方法是围绕数组编写一个包装器类型,并将 that 作为属性返回。包装器类型可以有一个索引器——也许只是一个只读的,例如:

public class Wrapper<T>
{
private readonly T[,] array;

public Wrapper(T[,] array)
{
this.array = array;
}

public T this[int x, int y]
{
return array[x, y];
}

public int Rows { get { return array.GetUpperBound(0); } }
public int Columns { get { return array.GetUpperBound(1); } }
}

然后:

public static class Foo
{
private static readonly int[,] data = ...;

// Could also cache the Wrapper and return the same one each time.
public static Wrapper<int> Data
{
get { return new Wrapper<int>(data); }
}
}

关于c# - 二维数组属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6111049/

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