C#基础入门之C#创建自定义特性
小职 2021-04-14 来源 :后端Q 阅读 759 评论 0

摘要:本文主要介绍了C#基础入门之C#创建自定义特性,通过具体的内容向大家展现,希望对大家C#开发的学习有所帮助。

本文主要介绍了C#基础入门之C#创建自定义特性,通过具体的内容向大家展现,希望对大家C#开发的学习有所帮助。

C#基础入门之C#创建自定义特性

概述

特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。要设计你自己的自定义特性,无需掌握许多新的概念。 如果你熟悉面向对象的编程,并且知道如何设计类,那么你已经具备大部分所需知识。 自定义特性本质上是直接或间接派生自 System.Attribute的传统类。 与传统类一样,自定义特性包含用于存储和检索数据的方法。

 

实现方式

1、声明自定义特性,一个新的自定义特性应派生自 System.Attribute 类。

 

// 一个自定义特性 BugFix 被赋给类及其成员

[AttributeUsage(AttributeTargets.Class |

AttributeTargets.Constructor |

AttributeTargets.Field |

AttributeTargets.Method |

AttributeTargets.Property,

AllowMultiple = true)]

 

public class DeBugInfo : System.Attribute

2、构建自定义特性,让我们构建一个名为 DeBugInfo 的自定义特性,该特性将存储调试程序获得的信息。

 

// 一个自定义特性 BugFix 被赋给类及其成员

[AttributeUsage(AttributeTargets.Class |

AttributeTargets.Constructor |

AttributeTargets.Field |

AttributeTargets.Method |

AttributeTargets.Property,

AllowMultiple = true)]

 

public class DeBugInfo : System.Attribute

{

  private int bugNo;

  private string developer;

  private string lastReview;

  public string message;

 

  public DeBugInfo(int bg, string dev, string d)

{

      this.bugNo = bg;

      this.developer = dev;

      this.lastReview = d;

  }

 

  public int BugNo

  {

      get

      {

          return bugNo;

      }

  }

  public string Developer

  {

      get

      {

          return developer;

      }

  }

  public string LastReview

  {

      get

      {

          return lastReview;

      }

  }

  public string Message

  {

      get

      {

          return message;

      }

      set

      {

          message = value;

      }

  }

}

3、应用自定义特性

 

[DeBugInfo(45, "Zara Ali", "12/8/2012", Message = "Return type mismatch")]

[DeBugInfo(49, "Nuha Ali", "10/10/2012", Message = "Unused variable")]

class Rectangle

{

  // 成员变量

  protected double length;

  protected double width;

  public Rectangle(double l, double w)

  {

      length = l;

      width = w;

  }

  [DeBugInfo(55, "Zara Ali", "19/10/2012",

  Message = "Return type mismatch")]

  public double GetArea()

  {

      return length * width;

  }

  [DeBugInfo(56, "Zara Ali", "19/10/2012")]

  public void Display()

  {

      Console.WriteLine("Length: {0}", length);

      Console.WriteLine("Width: {0}", width);

      Console.WriteLine("Area: {0}", GetArea());

  }

}      


我是小职,记得找我

✅ 解锁高薪工作

✅ 免费获取基础课程·答疑解惑·职业测评

C#基础入门之C#创建自定义特性

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程