我在观看教程的同时遇到了这个问题。 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线以外没有解释原因。 具体来说,我想知道方括号。我了解数组,并且我知道注释,但这看起来不同。
答案 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
的读/写索引器