索引器与字典

时间:2014-02-13 18:34:26

标签: c# indexer

我无法继续使用以下代码。有人可以帮忙吗?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Demo_Inidexers
{
    public class MyIndexer
    {
        Dictionary <int,string >  testdctnry = new Dictionary<int,string>()  ;
        public string this[int index,string val ]
        {
            get 
            {
                string temp;
                if (index > 0)
                    MessageBox .Show ("Hey m Zero");
                return testdctnry[index];
            }
            set
            {
                if (index > 1)
                    MessageBox.Show("Setting up");
                testdctnry.Add(index, val);
            }
        }
    }
    static class Program
    {

        static void Main()
        {
            MyIndexer MI = new MyIndexer();

        }
    }
}

在上面的代码中,我如何使用索引器和字典。我对c#很新,请帮忙。我想了解索引器。

2 个答案:

答案 0 :(得分:2)

设置索引器的值不应用作第二个参数。 get根本无法访问设定值,因为没有。在set方法中,有一个上下文关键字value,其值设置为索引器:

public class MyIndexer
{
    private Dictionary <int,string> testdctnry = new Dictionary<int,string>();
    public string this[int index]
    {
        get 
        {
            if (index > 0)
                MessageBox.Show("Hey m Zero");
            return testdctnry[index];
        }
        set
        {
            if (index > 1)
                MessageBox.Show("Setting up");
            testdctnry[index] = value;
        }
    }
}

答案 1 :(得分:-1)

你有什么问题?

通过调用obj [args]来调用索引器。要使用getter,可以使用obj [args],就像它是一个值一样。要使用setter,可以在赋值的左侧使用obj [args]。

http://msdn.microsoft.com/en-us/library/6x16t2tx.aspx