当前位置: 首页 > news >正文

C# 特性(Attribute)

C# 特性(Attribute)

文章目录

  • C# 特性(Attribute)
    • Obsolete
      • 语法
      • 示例代码
    • 创建自定义特性(Attribute)

Obsolete

这个预定义特性标记了不应被使用的程序实体。它可以让您通知编译器丢弃某个特定的目标元素。例如,当一个新方法被用在一个类中,但是您仍然想要保持类中的旧方法,您可以通过显示一个应该使用新方法,而不是旧方法的消息,来把它标记为 obsolete(过时的)。

语法

[Obsolete(message
)]

或者:

[Obsolete(message,iserror
)]

示例代码

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{public class Myclass{[Conditional("DEBUG")]public static void Message(string msg){Console.WriteLine(msg);}}[AttributeUsage(AttributeTargets.All)]public class HelpAttribute : System.Attribute{private string topic;public readonly string Url;public string Topic{get{return topic;}set{topic = value;}}// url 是一个定位(positional)参数public HelpAttribute(string url){this.Url = url;}}[HelpAttribute("Information on the class MyClass")]class MyClass { }class Test{[Obsolete("Don't use OldMethod, use NewMethod instead", true)]static void OldMethod(){Console.WriteLine("It is the old method");}static void NewMethod(){Console.WriteLine("It is the new method");}public static void Main(){OldMethod();}}
}

如果是false,那么显示一个警告:
在这里插入图片描述
如果是true,那么就报错误:
在这里插入图片描述

  • 参数 message,是一个字符串,描述项目为什么过时以及该替代使用什么。
  • 参数 iserror,是一个布尔值。如果该值为 true,编译器应把该项目的使用当作一个错误。默认值是 false(编译器生成一个警告)。

创建自定义特性(Attribute)

创建并使用自定义特性包含四个步骤:

声明自定义特性
构建自定义特性
在目标程序元素上应用自定义特性
通过反射访问特性

http://www.lryc.cn/news/325110.html

相关文章:

  • Redis 教程系列之Redis 配置(三)
  • Java实验03
  • 安卓studio连接手机之后,一两秒之后就自动断开了。问题解决。
  • 数字科技优化金融供给,内外协同激活新质生产力
  • 「Linux系列」Shell 输入/输出重定向
  • java实现word转pdf
  • [flask] flask的基本介绍、flask快速搭建项目并运行
  • 设计编程网站集:生活部分:饮食+农业,植物(暂记)
  • 搜索二维矩阵
  • 【LeetCode周赛】第 390 场周赛
  • leetcode 343.整数拆分
  • 部署Zabbix Agents添加使能监测服务器_Linux平台_Yum源/Archive多模式
  • 吴恩达2022机器学习专项课程(一) 第一周课程实验:模型表示(Lab_03)
  • 流畅的 Python 第二版(GPT 重译)(十)
  • 【自然语言处理七-经典论文-attention is all you need】
  • 【嵌入式】STM32和I2C通信
  • 如何使用Harmony OS控制外设——输入输出?
  • 1.1-数组-704. 二分查找★
  • 人物百度百科怎么做?需要什么资料?
  • 在基于Android相机预览的CV应用程序中使用 OpenCL
  • 网络分类简述与数据链路层协议(PPP)
  • Linux文件系列:磁盘,文件系统,软硬链接
  • GPT4.0
  • 软件工程(双语)
  • 网络——套接字编程UDP
  • FPGA_AD9361
  • 探讨Java代码混淆加固工具
  • Linux——du, df命令查看磁盘空间使用情况
  • 数据库实验(一)SQL Server触发器
  • 添加网址到主页