常州上位机培训

常州机器视觉培训

常州机器人培训

江苏和讯自动化设备有限公司欢迎您!
  • 和讯PLC,电工培训中心优势,名师团队一对一教学.
热门课程
联系方式
  • 常州和讯自动化培训中心
  • 常州市新北区太湖东路府琛大厦2号楼307-1室,307-2室(常州万达广场对面)
  • 电话:0519-85602926
  • 手机:15861139266 13401342299
当前位置:网站首页 > 新闻中心 新闻中心
自定义特性给属性加个说明-常州上位机培训,常州机器视觉培训
日期:2024-3-12 16:50:26人气:  标签:常州上位机培训 常州机器视觉培训

前言

我们都知道,类是对象的抽象,主要包含属性和方法,属性是用来描述和反映对象特征的参数,方法是用来描述对象的行为,那如果我想对类、属性、方法做进一步的描述呢?


这时候我们可以使用特性。


自定义特性

我们可以通过自定义特性,自由地实现对属性方法的描述。


创建并使用自定义特性可以分为以下四个步骤:


1、声明自定义特性:创建一个类,取名为CustomAttribute,必须以Attribute结束,并继承System.Attribute类,同时可以加一些声明,如下所示:


    /// <summary>

    /// 说明该类型只针对类和属性有效

    /// </summary>

    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property)]

    public class CustomAttribute : Attribute

    {

    }

2、构建自定义特性:自定义特性类本质也是类,我们在自定义特性类里创建一些属性,并创建一个构造方法用于初始化,代码如下:


    /// <summary>

    /// 说明该类型只针对类和属性有效

    /// </summary>

    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property)]

    public class CustomAttribute : Attribute

    {

        /// <summary>

        /// 构造方法初始化

        /// </summary>

        /// <param name="DisplayName"></param>

        /// <param name="DisplayWidth"></param>

        public CustomAttribute(string DisplayName, int DisplayWidth)

        {

            this.DisplayName = DisplayName;

            this.DisplayWidth = DisplayWidth;

        }

        /// <summary>

        /// 显示名称

        /// </summary>

        public string DisplayName { get; set; }

        /// <summary>

        /// 显示宽度

        /// </summary>

        public int DisplayWidth { get; set; }


    }

3、应用自定义特性:接下来就是如何使用了,我们重新创建一个实体类,在属性前面加一段代码,特性一般写在中括号里。


    public class Points

    {

        [Custom("站点名称", 100)]

        public string StationNo { get; set; }

        

        [Custom("P1数据名称", 100)]

        public float TD_P1 { get; set; }

                

        [Custom("P2数据名称", 100)]

        public float TD_P2 { get; set; }

    }

4、获取自定义特性:创建自定义特性的目的还是在于获取设置的数据,这里我们通过反射来实现,代码如下:


            Type t = typeof(Points);


            foreach (PropertyInfo pi in t.GetProperties())

            {

                string propertyName = pi.Name;

                string displayName = pi.GetCustomAttribute<CustomAttribute>()?.DisplayName;

                int displayWidth = pi.GetCustomAttribute<CustomAttribute>().DisplayWidth;

                Console.WriteLine("属性名称:"+propertyName+";显示名称:"+displayName + ";显示宽度:" + displayWidth);

            }

2.png

总结

以上就是自定义特性的使用,希望对大家有帮助。


至于在开发项目中如何使用,后面会以实际的一个应用场景来说明。

本文网址:
下一篇:没有资料

相关信息:
版权所有 CopyRight 2006-2017 江苏和讯自动化设备有限公司 电话:0519-85602926 地址:常州市新北区太湖东路府琛大厦2号楼307-1室,307-2室
ICP备14016686号-2 技术支持:常州鹤翔网络
本站关键词:常州电工培训 常州电工证 常州变频器培训 常州触摸屏培训 网站地图 网站标签
在线与我们取得联系