'论证的目的是什么?在方括号? C#

时间:2018-05-04 20:22:39

标签: c# asp.net-mvc brackets square

我在观看教程的同时遇到了这个问题。 Haven之前没见过,我想知道这里发生了什么。

    Application["ApplicationStartDateTime"] = DateTime.Now;

这是在上下文中:

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        RouteConfig.RegisterRoutes(RouteTable.Routes);

        Application["ApplicationStartDateTime"] = DateTime.Now;
    }
    protected void Application_End()
    {
        Application.Clear();
    }
}

application_Start方法是锅炉板,除了添加的StartDateTime线以外没有解释原因。 具体来说,我想知道方括号。我了解数组,并且我知道注释,但这看起来不同。

1 个答案:

答案 0 :(得分:5)

那是indexer。基本上它看起来像是使用数组,但它可以有多个参数,并且它们不必是整数。就像属性一样,索引器可以有一个get访问器和/或一个set访问器。

他们被宣布为:

public class Container
{
    public string this[int x, int y]
    {
        get { /* code here */ }
        set { /* code here using value */ }
    }
}

这是string类型的索引器,它有两个int个参数。所以我们可以写:

Container container = new Container();
string fetched = container[10, 20];
container[1, 2] = "set this value";

索引器最常用于集合:

  • IList<T>使用单个T参数声明类型为int的读/写索引器
  • IDictionary<TKey, TValue>使用单个TValue参数声明类型为TKey的读/写索引器