解释这个c#定义:function_name(this class_name namevar)

时间:2012-08-16 13:52:29

标签: c#

我一直在寻找有关这种结构的信息,但我找不到它;所以,如果有人有时间解释这一点,或指向一些解释它的URl。

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

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

 }

2 个答案:

答案 0 :(得分:6)

这是一种扩展方法。有关详细信息,请参阅以下文章:http://msdn.microsoft.com/en-us/library/bb383977.aspx

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

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

答案 1 :(得分:2)

这是extension methodIPrincipal,它返回自定义类型Site.Web.Models.SiteIdentity的对象。

  

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