技术开发 频道

如何使用C#自定义属性

  使用属性

  在我们深入了解如何设计自定义属性之前,我们需要先看一下它们是如何使用的。例如,假

  定我们有一个称为“Hide”的属性它能够有效地隐藏Properties,因此它们不会显示在屏幕上。如果我们将这个属性应用于“SSN”property,那么代码将会如列表A所示。

  列表 A

[Hide ()]
public string SSN
{
get { return _ssn; }
set { _ssn = value; }
}

 

  作为更复杂一点的例子,假设我们将有一个属性称为“Alias”。该属性的任务是检查一个property可能拥有别名。这将允许将一个property值映射给另一个property即使批roperty的名字不匹配。这个属性接受一系列字符串值作为映射名。(列表B)

  列表 B

[Alias ("FirstName", "First")]
public string FName
{
get { return _fName; }
set { _fName = value; }
}

 

  在这个例子中,property“FName”被映射到“FirstName”和“First”,请查看示例应用以更详细的了解这种应用。

  创建属性

  创建属性是一个简单的过程。你可以定义继承自System.Attribute类的一个包含你想要储存的数据的类。列表C的前半部分显示了如何创建一个名为“Alias”的属性。

  列表 C

Class Alias : System.Attribute
{
string[] _names;
public Alias(params string[] names)
{
this.Names = names;
}
public string[] Names
{
get { return _names; }
set { _names = value; }
}
}

 

  正如你所看到的,这就是一个普通的类,唯一的例外就是继承自System.Attribute类。我们不需要作任何特别的事情使它成为一个类。我们只是简单的定义了一个需要使用的构造函数并创建了一个property和一个存储数据的私有成员。

  列表D是个更简单的属性——“Hide”属性。这个属性不需要构造函数(使用默认的构建函数),也不储存数据。因为这个属性只是一个简单的标志类型的属性。

  列表 D

Class Hide : System.Attribute
{
//This is a simple attribute, that only requires
// the default constructor.
}

 

0
相关文章