C#中属性(Attribute)的用法

 更新时间:2022年05月11日 15:11:20   作者:springsnow  
这篇文章介绍了C#中属性(Attribute)的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、创建属性

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Constructor, AllowMultiple = true, Inherited = true)]
//AttributeTargets:属性应用到的目标类型。AllowMultiple:是否允许一个元素应用多个此属性。Inherited:属性能否有派生类继承。
public class CodeStatusAttribute : Attribute
{
    private string status;
    public CodeStatusAttribute(string status)//构造函数为位置参数
    {
        this.status = status;
    }
    public string Tester { set; get; }//属性和公共字段为命名参数
    public string Coder { set; get; }
    
    public override string ToString()
    {
        return status;
    }
}

二、应用属性

//1、使用单个属性
[CodeStatus("a版")]
public class Tringe
{ }

//2、使用多个属性
[CodeStatus("b版", Coder = "小李")]
[CodeStatus("b版", Coder = "小王")]
//也可以[CodeStatus("aa",Coder="小李"),CodeStatus("aa",Coder="小王")]
public class Square
{ }

//3、使用位置参数和命名参数
//type表示此属性与什么元素关联,可能有:assembly,field,method,param,property,return,moudule,event,type等。。
[type: CodeStatus("最终版", Coder = "小李", Tester = "老李")]
public class Circle
{
    [CodeStatus("最终版", Coder = "小李", Tester = "老李")]
    public Circle()
    {

    }
}

三、反射属性

//1、获取类上的属性。
Type t = typeof(Circle);
Attribute[] attArr = Attribute.GetCustomAttributes(t, typeof(CodeStatusAttribute));
//或
object[] attArr1 = t.GetCustomAttributes(typeof(CodeStatusAttribute), true);

//2、获取成员上属性
Attribute[] attArr3 = t.GetConstructors()[0].GetCustomAttributes().ToArray();//构造函数,获取字段GetField("..")

//3、遍历
foreach (Attribute attr in attArr3)
{
    CodeStatusAttribute item = (CodeStatusAttribute)attr;
    Console.Write(item.ToString() + item.Coder + item.Tester);
}

四、Net内置属性

[Condeitonal] //条件控制
[Obsolete] //废弃属性
[Serializable]//可序列化属性
[AssemblyDelaySign] //程序集延迟签名

到此这篇关于C#属性(Attribute)的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • WPF实现自定义窗体的示例代码

    WPF实现自定义窗体的示例代码

    .Net默认的窗体样式只有四种,而且都比较“丑”,但是很多时候,我们希望自定义窗体,比如,无边框,有阴影等,所以本文为大家介绍了WPF实现自定义窗体的方法,希望对大家有所帮助
    2023-09-09
  • C# 大小写转换(金额)实例代码

    C# 大小写转换(金额)实例代码

    C# 大小写转换(金额)实例代码,需要的朋友可以参考一下
    2013-03-03
  • C#自定义事件模拟风吹草摇摆效果

    C#自定义事件模拟风吹草摇摆效果

    这篇文章主要介绍了C#自定义事件模拟风吹草摇摆效果,草地上每一颗草都监听HoverTreeWindEvent事件,根据风向(WindDdirection)调整姿态。需要的朋友可以参考下
    2017-08-08
  • Unity实现旋转扭曲图像特效

    Unity实现旋转扭曲图像特效

    这篇文章主要为大家详细介绍了Unity实现旋转扭曲图像特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • C#中DataGridView的样式

    C#中DataGridView的样式

    这篇文章主要介绍了C#中DataGridView的样式设置方法,包括交替行颜色、单元格内容有效性检查、单元格的选择模式等,需要的朋友可以参考下
    2015-02-02
  • C#集合之位数组的用法

    C#集合之位数组的用法

    这篇文章介绍了C#集合之位数组的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • WinForm实现读取Resource中文件的方法

    WinForm实现读取Resource中文件的方法

    这篇文章主要介绍了WinForm实现读取Resource中文件的方法,很实用的一个功能,需要的朋友可以参考下
    2014-08-08
  • C#文件操作、读取文件、Debug/Trace类用法

    C#文件操作、读取文件、Debug/Trace类用法

    这篇文章介绍了C#文件操作、读取文件、Debug/Trace类的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • 当用户退出点击浏览器后退仍可回到原来页面的解决方案

    当用户退出点击浏览器后退仍可回到原来页面的解决方案

    这篇文章主要介绍了当用户退出点击浏览器后退仍可回到原来页面的解决方案 的相关资料,需要的朋友可以参考下
    2016-03-03
  • c#操作sql server2008 的界面实例代码

    c#操作sql server2008 的界面实例代码

    这篇文章主要介绍了c#操作sql server2008 的界面实例代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03

最新评论