2012-11-09 36 views
2

在以下示例中,在类中使用此[]以从类即时的某个位置获取值。这个值在哪里存储?是否可能[]运算符被重载,或者这只是我不熟悉的c#语法?使用此[]关键字从类即时检索值

public class MyUserSettings : ApplicationSettingsBase 
{ 
    [UserScopedSetting()] 
    [DefaultSettingValue("white")] 
    public Color BackgroundColor 
    { 
     get 
     { 
      return ((Color)this["BackgroundColor"]); 
     } 
     set 
     { 
      this["BackgroundColor"] = (Color)value; 
     } 
    } 
} 

回答

5

这就是所谓的indexer。这与为班级重载操作符非常相似。在该类的其他地方,或者在该类的其中一个基类中,定义了一个索引器。

4

它是indexer语法。

索引器允许像数组一样索引类或结构的实例。索引器类似于属性,但它们的访问器需要参数。

MyUserSettings继承的其中一个类实现了string索引器。