base["cacheDuration"] = value一直都不知道base["cacheDuration"]代表什么意思.
base是基类.
base()调用基类的方法.
那base[""]是什么意思呢?

解决方案 »

  1.   

    索引器允许类或结构的实例就像数组一样进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。在下面的示例中,定义了一个泛型类,并为其提供了简单的 get 和 set 访问器方法(作为分配和检索值的方法)。Program 类为存储字符串创建了此类的一个实例。class SampleCollection<T>
    {
        private T[] arr = new T[100];
        public T this[int i]
        {
            get
            {
                return arr[i];
            }
            set
            {
                arr[i] = value;
            }
        }
    }// This class shows how client code uses the indexer
    class Program
    {
        static void Main(string[] args)
        {
            SampleCollection<string> stringCollection = new SampleCollection<string>();
            stringCollection[0] = "Hello, World";
            System.Console.WriteLine(stringCollection[0]);
        }
    }
      

  2.   

    this 关键字引用类的当前实例,还可用作扩展方法的第一个参数的修饰符。
    以下是 this 的常用用途:1、限定被相似的名称隐藏的成员,例如:
    public Employee(string name, string alias) 
    {
        this.name = name;
        this.alias = alias;

    2、将对象作为参数传递到其他方法,例如: CalcTax(this);
    3、声明索引器,例如: 
    public int this [int param]
    {
        get { return array[param];  }
        set { array[param] = value; }
    }
    注意:由于静态成员函数存在于类一级,并且不是对象的一部分,因此没有 this 指针。在静态方法中引用 this 是错误的。using System;
    class Employee
    {
        private string name;
        private string alias;
        private decimal salary = 3000.00m;    // Constructor:
        public Employee(string name, string alias)
        {
            // Use this to qualify the fields, name and alias:
            this.name = name;
            this.alias = alias;
        }    // Printing method:
        public void printEmployee()
        {
            Console.WriteLine("Name: {0}\nAlias: {1}", name, alias);
            // Passing the object to the CalcTax method by using this:
            Console.WriteLine("Taxes: {0:C}", Tax.CalcTax(this));
        }    public decimal Salary
        {
            get { return salary; }
        }
    }
    class Tax
    {
        public static decimal CalcTax(Employee E)
        {
            return 0.08m * E.Salary;
        }
    }class MainClass
    {
        static void Main()
        {
            // Create objects:
            Employee E1 = new Employee("Mingda Pan", "mpan");        // Display results:
            E1.printEmployee();
        }
    }