解释此c#定义:函数_name(此类_namenamevar)

解释此c#定义:函数_name(此类_namenamevar),c#,C#,我在寻找关于这个结构的信息,但我找不到它;所以,如果有人有时间来解释这一点,或者指向某个URl进行解释 我在web C#应用程序的函数中找到了这个定义,例如: public static class PrincipalExtensions { public static Site.Web.Models.SiteIdentity SiteIdentity(this System.Security.Principal.IPrincipal principal) {

我在寻找关于这个结构的信息,但我找不到它;所以,如果有人有时间来解释这一点,或者指向某个URl进行解释

我在web C#应用程序的函数中找到了这个定义,例如:

  public static class PrincipalExtensions
{
    public static Site.Web.Models.SiteIdentity SiteIdentity(this System.Security.Principal.IPrincipal principal)
    {
       .....
       }

 }

这是一种扩展方法。有关详细信息,请参阅以下文章:

短版本:此构造使您能够使某些方法可用于在类实例上调用,即使您不能(或不想)从类继承。它不会授予您访问受保护或私有成员/字段/方法的权限

最值得注意的用法:在System.Linq命名空间中的IEnumerable/IQueryable上的扩展方法。

这是一个返回自定义类型的对象
Site.Web.Models.SiteIdentity

主体对象表示服务器上用户的安全上下文 代码正在代表谁运行,包括该用户的身份 (身份)及其所属的任何角色


另外,他的问题与ASP有很大关系,因此使用了“Site.Web.Models.SiteIdentity”。值得注意的是,它实际上并没有向类中添加方法,只是提供了语法,使其看起来像是将方法添加到了类中。方法本身只是一个静态方法,即使它是一个扩展方法。(虽然这看起来没有什么意义,但它确实很重要。)谢谢你的URL,我需要的