博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
_02特性 给方法加上注释 或者停用
阅读量:6380 次
发布时间:2019-06-23

本文共 2524 字,大约阅读时间需要 8 分钟。

1.主函数的代码,先是验证已经有的特性:

1 using System; 2 using System.Collections.Generic; 3 using System.Diagnostics; 4 using System.Linq; 5 using System.Runtime.CompilerServices; 6 using System.Text; 7 using System.Threading.Tasks; 8  9 namespace _02特性10 {11     [myTeXing("啊韩国",Id =45)]12     class Program13     {14         static void Main(string[] args)15         {16             //创建自己的特性17          Type t=   typeof(Program);//创建18             object[] obj = t.GetCustomAttributes(false);19             foreach (var item in obj)20             {21                 Console.WriteLine(item);////输出类名22                 Console.WriteLine(((myTeXingAttribute)item).Name);//输出名字23                 Console.WriteLine(((myTeXingAttribute)item).Id);//输出id24             }25             //text();26             ////text1();//特性Obsolete为true该方法就不能使用了27             //text2();//已经被注释 输不出了28             //text3("笑话");//有[]个的可以不用加参数的29 30         }31 32         //调用已经有的特性33         [Obsolete("这个方法还可以用一段时间")]//当光标在方法上时候会有提示 该方法还可以用34         public static void text()35         {36             Console.WriteLine("text");37         }38 39         [Obsolete("该程序禁止使用", true)]//该方是可以用来代码升级的时候,又不舍得丢弃老代码的时候实用40         public static void text1()41         {42             Console.WriteLine("text1");43         }44 45        [Conditional("text2")]//该方法被注释掉了(字符串作为标记进行注释) 主函数已经调用不出来了46         public static void text2()47         {48             Console.WriteLine("text2");49         }50 51        //输出加上去的特性 把文件名字 路径 都显示了52         public static void text3(string name,[CallerFilePath]string filepath="",[CallerLineNumber]int num=11,[CallerMemberName]string filename="")53         {54             Console.WriteLine("text3");55             Console.WriteLine(name + filepath + num + filename);56 57         }58     }59 }

2.自己创建个特性,在主函数里面调用:

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6  7 namespace _02特性 8 { 9     //1.特性类尾缀加上Attribute 10     //2.必须引用特性[AttributeUsage]并继承于System.Attribute 11     //3.特性内一般只有属性没有方法 4.构造函数内可以添加参数 12 13     [AttributeUsage(AttributeTargets.Class)]14     class myTeXingAttribute:System.Attribute15     {16 17         string name;18         int id;19 20         public string Name { get => name; set => name = value; }21         public int Id { get => id; set => id = value; }22         public myTeXingAttribute(string name)23         {24             this.Name = name;25         }26     }27 }

 

转载于:https://www.cnblogs.com/satanj/p/9707683.html

你可能感兴趣的文章
freemarker错误七
查看>>
Cocos2dx 3.x创建Layer的步骤
查看>>
ASP.NET MVC 中将数据从View传递到控制器中的三种方法(表单数据绑定)
查看>>
SpringMVC+easyUI CRUD 添加数据C
查看>>
本地CS的导出xls代码段
查看>>
C++数组和指针
查看>>
恭贺自己itpub和csdn双双获得专家博客称号
查看>>
xml 转map dom4j
查看>>
Vitamio视频播放器
查看>>
Java编程的逻辑 (66) - 理解synchronized
查看>>
[置顶] android 自定义ListView实现动画特效
查看>>
机器学习A-Z~Logistic Regression
查看>>
聊聊flink的NetworkEnvironmentConfiguration
查看>>
【Go】strings.Replace 与 bytes.Replace 调优
查看>>
RSA签名的PSS模式
查看>>
c# 注销 代码
查看>>
ubuntu 安装-apache2-trac-ldap【验证】-svn-mysql
查看>>
Nginx 安装
查看>>
php GD库
查看>>
项目管理
查看>>