base[“描述”]和创建(用户名)的含义是什么?

本文关键字:是什么 用户 描述 创建 base | 更新日期: 2023-09-27 18:01:00

谁能为我描述base[""]Create()在这个代码中的作用?

public class UserProfile : ProfileBase
{
    public static UserProfile GetUserProfile(string username)
    {
        return Create(username) as UserProfile;
    }
    [SettingsAllowAnonymous(false)]
    public string Description
    {
        get { return base["Description"] as string; }
        set { base["Description"] = value; }
    }
}

base[“描述”]和创建(用户名)的含义是什么?

base["Description"]语法就是 .NET 中所谓的Indexer。可以使用 this 关键字通过属性声明在自己的类上定义索引器,如下所示:

public class MyClass
{
    //indexer (could use int or anything else that your underlying collection supports)
    public string this[string index]
    {
        get
        {
             //retrieve from internal cache/collection/etc based on index
        }
        set
        { 
             //set internal cache/collection/etc based on index and value
        }
    }
}

然后像这样使用它

var myclass = new MyClass();
var value = myclass["index"];
myclass["another"] = "new value";

在您的示例中,ProfileBase 定义了一个索引器,UserProfile通过 base 关键字访问它,因为ProfileBaseUserProfile 的基类。

使用base关键字,您可以调用/访问属性/方法/成员的基类实现。

Create来自 ProfileBase

ProfileBase 反过来继承自具有Item属性的SettingsBase

,该属性是索引属性,这是base["Description"]的来源。