当我需要一个数组在C#中有一个间隔时,如何处理数组属性?

问题描述 投票:0回答:2

我对C#非常陌生,我仍然试图围绕它的一些核心概念。第一次向StackOverflow发布一个问题。

所以这就是我需要帮助的:

为以下属性创建一个属性:private string array; :这样:“数组的每个元素都需要> = 0且<= 10”

我应该通过for,然后为每个元素设置array = value或什么?

这就是我做的:

private string array;
 public int[] Array
        {
            get { return array; } //-is this part good for the task?
            set
            {
                //what do I do here to make sure the elements are withing the 
                //given interval?

            }
        }
c# arrays properties setter getter
2个回答
1
投票

看看这是否是你需要的(Demo):

public class myClass
{
    private int[] _Array = new int[10];

    public int this[int index]
    {
        get { return _Array[index]; }
        set
        {
            if (value >= 0 && value <= 10)
                _Array[index] = value;
        }
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        myClass m = new myClass();
        m[0] = 1;
        m[1] = 12;
        Console.WriteLine(m[0]); // outputs 1
        Console.WriteLine(m[1]); // outputs default value 0
    }
}

0
投票

你正在寻找这样的东西

private int[] _privateArray;
public int[] PublicArray
{
    get
    {
        return _privateArray;
    }
    set
    {
        foreach (int val in value)
        {
            if (val < 0 || val > 10) throw new ArgumentOutOfRangeException();
        }
        // if you get to here you can set value
        _privateArray = (int[])value.Clone();
    }
}

请注意,私人财产和公共财产必须是同一类型

© www.soinside.com 2019 - 2024. All rights reserved.