2011-03-10 49 views
2

以下代碼的第一行是什麼?這部分代碼叫做什麼?

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
public virtual IController Controller 
{ 
    get { return controller; } 
    set { controller = value; } 
} 

回答

10

它被稱爲attribute。屬性用於描述屬性,方法等。它們用於提供元數據等等。

在這種情況下,DesignerSerializationVisibility.Hidden屬性表示Controller屬性對設計時序列化程序不可見。

+0

有時屬性的確提供了附加的功能除了剛剛添加元數據的組件,如與'[序列化]」。只是一個黑客。 – richard 2011-03-10 05:27:27

+0

@Richard DesLonde:你說得對。 – BoltClock 2011-03-10 05:28:45

+0

感謝您的答案。 – yonan2236 2011-03-10 05:41:40

1

位置參數是屬性構造函數的參數。它們是強制性的,每次將屬性放在任何程序實體上時都必須傳遞一個值。另一方面,命名參數實際上是可選的,不是屬性構造函數的參數。

[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, 
Inherited = false)] 
public class HelpAttribute : Attribute 
{ 
    public HelpAttribute(String Description_in) 
    { 
     this.description = Description_in; 
     this.verion = "No Version is defined for this class"; 
    } 
    protected String description; 
    public String Description 
    { 
     get 
     { 
      return this.description; 
     } 
    } 
    protected String version; 
    public String Version 
    { 
     get 
     { 
      return this.version; 
     } 
     //if we ever want our attribute user to set this property, 

     //we must specify set method for it 

     set 
     { 
      this.verion = value; 
     } 
    } 
} 
[Help("This is Class1")] 
public class Class1 
{ 
} 

[Help("This is Class2", Version = "1.0")] 
public class Class2 
{ 
} 

[Help("This is Class3", Version = "2.0", 
Description = "This is do-nothing class")] 
public class Class3 
{ 
} 

more...