2
以下代碼的第一行是什麼?這部分代碼叫做什麼?
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public virtual IController Controller
{
get { return controller; }
set { controller = value; }
}
以下代碼的第一行是什麼?這部分代碼叫做什麼?
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public virtual IController Controller
{
get { return controller; }
set { controller = value; }
}
它被稱爲attribute。屬性用於描述屬性,方法等。它們用於提供元數據等等。
在這種情況下,DesignerSerializationVisibility.Hidden
屬性表示Controller
屬性對設計時序列化程序不可見。
位置參數是屬性構造函數的參數。它們是強制性的,每次將屬性放在任何程序實體上時都必須傳遞一個值。另一方面,命名參數實際上是可選的,不是屬性構造函數的參數。
[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
{
}
有時屬性的確提供了附加的功能除了剛剛添加元數據的組件,如與'[序列化]」。只是一個黑客。 – richard 2011-03-10 05:27:27
@Richard DesLonde:你說得對。 – BoltClock 2011-03-10 05:28:45
感謝您的答案。 – yonan2236 2011-03-10 05:41:40