在C#中,尖括号语法表示什么意思?

27

我正在阅读这本书,它试图使用初始化程序在每次应用程序运行时创建数据库,因此代码片段如下:

protected void Application_Start() {
    Database.SetInitializer(new DropCreateDatabaseAlways<MusicStoreDB>());

    AreaRegistration.RegisterAllAreas();
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}

我不理解这个部分:

 new DropCreateDatabaseAlways<MusicStoreDB>()

这个语法是什么?<MusicStoreDB>() 表示什么意思?

我知道这不是一个花哨的问题,但我需要帮助。

谢谢。


1
它是 CodeFirst,这意味着每当应用程序启动时重新创建数据库,MusicStoreDB 是数据库。 - Bobby Tables
嗨Toby,我知道这是Code First,但我不理解C#语法本身。 - Brittany Rutherford
如果你不了解C#语法,那么最好先从一些关于该语言的入门书籍开始,然后再深入学习MVC框架。 - lukbl
我理解泛型,但这里的用法让我感到困惑,谢谢其他人在答案中澄清了它。 - Brittany Rutherford
2个回答

43
这种语法被称为泛型。简单来说(非常简单),想象一下如果你的应用程序有多个数据库(例如MusicStoreDB,MovieStoreDB等),你可以使用相同的DropCreateDatabaseAlways类来处理不同的数据库类型。换句话说,泛型允许您定义可以作用于许多不同类型的类和函数,例如List<int>, List<string>, List<MyAwesomeClass>

8
好的,谢谢你的解释。我希望其他人也可以像你一样帮助别人,而不是对问题进行投票,非常感激 :) - Brittany Rutherford

1

DropCreateDatabaseAlways是数据库初始化器的基类。MusicStoreDB是每次应用程序启动时将被删除并重新创建的数据库。DropCreateDatabaseAlways<MusicStoreDB>()是执行此操作的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接