Vb.net 创建UserManager实例的语法是什么?

Vb.net 创建UserManager实例的语法是什么?,vb.net,asp.net-mvc-5,asp.net-identity,Vb.net,Asp.net Mvc 5,Asp.net Identity,VS2013,MVC5,VB 有人帮助我解决了在我的seed方法中为位于的MVC5应用程序创建用户的问题 这个问题是问这行正常工作的代码是怎么回事: Dim myUserManager = New UserManager(Of ApplicationUser)(New UserStore(Of ApplicationUser)(New ApplicationDbContext)) 以下是我不明白的解释。我会把它分解成我所理解的,然后用我所不理解的继续下去 New UserManager(Of

VS2013,MVC5,VB

有人帮助我解决了在我的seed方法中为位于的MVC5应用程序创建用户的问题

这个问题是问这行正常工作的代码是怎么回事:

Dim myUserManager = New UserManager(Of ApplicationUser)(New UserStore(Of ApplicationUser)(New ApplicationDbContext))
以下是我不明白的解释。我会把它分解成我所理解的,然后用我所不理解的继续下去

New UserManager(Of ApplicationUser)... is creating an instance of UserManager, yes?
之后,还有两个“新事物”

... (New UserStore(Of ApplicationUser)(New ApplicationDbContext))
我不懂那个语法。在一个新的UserStore中有一个完整的括号,后面是一组新上下文的括号

这是我不懂的部分。我缺乏理解的一部分是(1)这种语法的一般含义,另一部分是(2)为什么在这种情况下需要这种语法

“newuserstore”是什么意思,然后是“New”短语


是否有一种更具解释性的更长的编写方法?

以下代码行:

Dim myUserManager = New UserManager(Of ApplicationUser)(New UserStore(Of ApplicationUser)(New ApplicationDbContext))
相当于:

Dim myApplicationDbContext As New ApplicationDbContext
Dim myUserStore As New UserStore(Of ApplicationUser)(myApplicationDbContext)
Dim myUserManager = New UserManager(Of ApplicationUser)(myUserStore)
  • 第一步是创建一个新的
    ApplicationDbContext
    对象,该对象不带任何参数
  • 第二步是创建一个新的
    UserStore(属于ApplicationUser)
    对象,它将已创建的
    ApplicationDbContext
    对象作为其构造函数的参数
  • 第三步是创建一个新的
    UserManager(属于ApplicationUser)
    对象,它将已创建的
    UserStore(属于ApplicationUser)
    对象作为其构造函数的参数

  • 类型名称的
    (Of…
    部分是泛型参数。NET支持。的
    之后的部分是泛型类的类型参数。因此,正如
    Dim x as New List(Of String)
    创建字符串列表一样,
    UserStore(Of ApplicationUser)
    创建用于存储应用程序用户的用户存储。

    以下代码行:

    Dim myUserManager = New UserManager(Of ApplicationUser)(New UserStore(Of ApplicationUser)(New ApplicationDbContext))
    
    相当于:

    Dim myApplicationDbContext As New ApplicationDbContext
    Dim myUserStore As New UserStore(Of ApplicationUser)(myApplicationDbContext)
    Dim myUserManager = New UserManager(Of ApplicationUser)(myUserStore)
    
  • 第一步是创建一个新的
    ApplicationDbContext
    对象,该对象不带任何参数
  • 第二步是创建一个新的
    UserStore(属于ApplicationUser)
    对象,它将已创建的
    ApplicationDbContext
    对象作为其构造函数的参数
  • 第三步是创建一个新的
    UserManager(属于ApplicationUser)
    对象,它将已创建的
    UserStore(属于ApplicationUser)
    对象作为其构造函数的参数

  • 类型名称的
    (Of…
    部分是泛型参数。NET支持。
    之后的部分是泛型类的类型参数。因此,正如
    Dim x as New List(Of String)
    创建一个字符串列表一样,
    UserStore(Of ApplicationUser)
    创建一个用于存储应用程序用户的用户存储。

    似乎您不了解语句()中使用的泛型类型参数。不确定这是否有帮助,但您可以这样分解:

    ' Create an instance of ApplicationDbContext.
    ' The parens were missing in the original.
    Dim context = New ApplicationDbContext()
    ' Create an instance of the generic type UserStore(Of T), with
    ' ApplicationUser as the type parameter, T.
    ' The type of userStore is therefore UserStore(Of ApplicationUser).
    ' context is passed as a parameter to the constructor.
    Dim userStore = New UserStore(Of ApplicationUser)(context)
    ' Create an instance of the generic type UserManager(Of T), with
    ' ApplicationUser as the type parameter, T.
    ' The type of myUserManager is therefore UserManager(Of ApplicationUser).
    ' userStore is passed to the constructor as a parameter
    Dim myUserManager = New UserManager(Of ApplicationUser)(userStore)
    

    似乎您不了解语句()中使用的泛型类型参数。不确定这是否有帮助,但您可以这样分解:

    ' Create an instance of ApplicationDbContext.
    ' The parens were missing in the original.
    Dim context = New ApplicationDbContext()
    ' Create an instance of the generic type UserStore(Of T), with
    ' ApplicationUser as the type parameter, T.
    ' The type of userStore is therefore UserStore(Of ApplicationUser).
    ' context is passed as a parameter to the constructor.
    Dim userStore = New UserStore(Of ApplicationUser)(context)
    ' Create an instance of the generic type UserManager(Of T), with
    ' ApplicationUser as the type parameter, T.
    ' The type of myUserManager is therefore UserManager(Of ApplicationUser).
    ' userStore is passed to the constructor as a parameter
    Dim myUserManager = New UserManager(Of ApplicationUser)(userStore)
    

    它叫。我建议你把这一行分成3行(每新一行),它可能会帮助你理解正在发生的事情。它被称为。我建议你把这一行分成3行(每新一行),这可能会帮助你理解正在发生的事情。或者。。。史蒂文说的!我打字太慢了。好吧,我也太慢了,因为你在泛型部分击败了我,所以+1:)或者。。。史蒂文说的!我打字太慢了。好吧,我也太慢了,因为你在泛型部分打败了我,所以+1:)明白了!我现在看到,我使用的初始代码是一个快捷方式,用于构建新UserManager所需的组件。如果可以的话,我可以再跟进一下:你的“等价”代码的最后一行有“新的x(of y)(z)”,这实际上也和第二行一样在这一行的末尾;这只是某些方法传递所需组件的标准语法类型吗?出于某种原因,必须与在括号内传递组件不同吗?在您给出的链接上,没有一个显示在中传递组件的括号语法类型。顺便问一下,您如何标记2个答案?我知道我很乐意提供帮助,但无法理解。你们两个都帮了我。@Alan这是构造函数的参数。类可以在其构造函数上创建可选的,甚至是必需的参数。当它们创建时,您可以(或必须)创建创建新对象时,在类型名称后的括号内传递参数,就像这样。例如,
    Dim p As new Point(1,2)
    在坐标为x=1和y=2的位置创建一个新的
    对象。@Alan您不能将多个问题标记为正确答案。您必须选择对您最有帮助的一个。如果多个答案都有帮助,您可以对所有答案进行投票,但您只能将其中一个标记为正确答案。您可能需要更多信息但是,在你可以获得投票答案之前,请先获得声誉点。如果两个答案对你都有同样的帮助,请选择Mark的答案,因为他比我更需要分数:)请注意
    点的
    结构如何为构造函数显示三种不同的重载。我在前面的评论示例中使用的是
    Point(Int32,Int32)
    one(列表中的第三个)。明白了!我现在看到我使用的初始代码是一个快捷方式,用于构建新的UserManager所需的组件。如果可以的话,可以进行后续操作:您的“等效”代码的最后一行有“New x(of y)(z)”,这实际上也与第二行类似。线路末端的(z);这只是某些方法传递所需组件的标准语法类型吗?出于某种原因,传递组件的方式必须不同于在括号内传递组件吗?日