C#编程-属性和反射

news2024/11/17 12:56:54

在这里插入图片描述

在这里插入图片描述

属性和反射

属性是将元数据信息和行为添加到应用程序代码中的简单技术。属性是允许您将声明信息添加到程序的元素。此声明信息在运行时用途广泛,可使用应用程序开发工具在设计时使用。


介绍属性

对象是由其属性值描述的。例如,汽车可以使用它的构造、型号或颜色来描述。类似地,C#程序具有某些描述和影响它的行为的属性,例如,编译器指令。

属性是证明标记,用于将程序元素(例如:类、枚举器和程序集)的行为信息传递到运行时。声明标记是由位于元素定义(例如类或方法)之上的方括号([ ])描述的。这些标签有助于扩展语言。

属性用于向程序添加元数据(如:编译器指令)和其他信息(如:注释、描述、方法和类)。

.NET Framework具有许多预定义属性。检查预定义属性和作用于其包含的值的代码,也属于运行时和.NET Framework软件开发工具包(SDK)的一部分。


在这里插入图片描述

应用属性

属性被应用到不同的代码元素。这些元素包括程序集、模块、类、结构、枚举、构造函数、方法、属性、字段、事件、接口、参数、返回值和委托。关于属性的信息存储在与它们相关联的元素的元数据中。

以下语法指定了一个属性:

	[attribute(positional_parameters,name_parameter = value, ...)]
	element

在上面的语法中,属性名及其值在应用属性的元素前的方括号([ ])内被指定。属性可能需要一个或多个参数,定位参数或者命名参数。定位参数用于指定属性的重要信息,而命名参数用于传递属性的可选信息。

.NET Framework支持将以下两个类型的属性用于C#程序中:

  1. 预定义属性:这些属性被作为公共语言运行时(CLR)而提供,且被集成到.NET Framework中。
  2. 自定义属性:这些属性是根据需求创建的属性。

注释
程序集时.NET Framework应用程序的构建块。它构成部署的基本单元。它还包含描述内部版本号以及他们包含的所有数据和对象类型详细信息的元数据。程序集的示例包括.exe和.dll文件。

小问题:
______参数被用于在属性中传递可选信息。
答案:
Named


在这里插入图片描述

使用预定义属性

.NET Framework提供的一些常用预定义属性有:

  1. Conditional:造成根据特定值(如:Debug或Trace)对方法调用使用条件编译。例如,在调试代码时,它显示变量的值。但是,这个属性仅决定当一个方法被调用的时候,将发生的动作。如果需要方法的条件编译,要在代码中使用#if和#endif指令。您可以应用condition属性的方法会受大量的限制。尤其是,它们的返回类型必须是void,并且不能被标记为覆盖,方法的实现应该来自于继承的接口。请思考以下代码行:
	[ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1390484.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

遇到问题不要慌,轻松搞定内存泄露

当一个系统在发生 OOM 的时候,行为可能会让你感到非常困惑。因为 JVM 是运行在操作系统之上的,操作系统的一些限制,会严重影响 JVM 的行为。故障排查是一个综合性的技术问题,在日常工作中要增加自己的知识广度。多总结、多思考、多…

PVE虚拟机配置文件恢复(qm list不显示虚拟机,web控制台看不到虚拟机)

本文章的目的是故障后复盘: 故障现象在命令行执行qm list不显示虚拟机,web控制台看不到虚拟机,网上查不到相关现象的处理办法。 处理思路:虚拟机还在正常工作,通过查看kvm进程ps aux | grep kvm,百度查看…

【RTOS】快速体验FreeRTOS所有常用API(11)打印空闲栈、CPU占用比

目录 十一、调试11.1 打印任务空闲栈11.2 打印所有任务栈信息11.3 CPU占用比11.4 空闲任务和钩子函数 十一、调试 该部分在上份代码基础上修改得来,代码下载链接: https://wwzr.lanzout.com/in63o1lauwwh 密码:9bhf 该代码尽量做到最简,不添加…

怎么安装IK分词器

.安装IK分词器 1.在线安装ik插件(较慢) # 进入容器内部 docker exec -it elasticsearch /bin/bash ​ # 在线下载并安装 ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elastics…

一个程序员“玩”出来的网站:每月成本仅 350 元,如今赚了 16.4 万元

很难想象:一个每月运行成本不到 50 美元(约人民币 358 元)的网站. 是如何做到收入 2.3 万美元(约人民币 16.4 万元)的? ** 如果你也对网站开发感兴趣? ** 首先,这个网站只有创始…

​LeetCode解法汇总82. 删除排序链表中的重复元素 II

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:. - 力扣(LeetCode) 描述: 给定一个已排序的链表的头 head &#xf…

年终总结各类表格模板Excel,大屏可视化,PPT总结等

马上就要进行年底总结,很多职场人找不到模板而浪费很多时间 今天就给大家分享一些常用的模板,报表,可视化,大屏,PPT汇报,表格等。 AIGC ChatGPT 职场案例 AI 绘画 与 短视频制作 PowerBI 商业智能 68集 数据库Mysql 8.0 54集 数据库Oracle 21C 142集 Office 2021实战应…

[Docker] Docker为什么出现

Docker为什么出现 一款产品: 开发–上线 -->两套环境 | 应用配置 开发即运维! 环境配置十分麻烦,每一个机器都要部署环境(Redis, ES, Hadoop) 费时费力 项目带上配置环境安装打包。 传统: 开发jar&…

Python——VScode安装

⼀、下载安装 [root192 ~]# rpm --import https://packages.microsoft.com/keys/microsoft.asc[root192 ~]# sh -c echo -e "[code]\nnameVisualStudio Code\nbaseurlhttps://packages.microsoft.com/yumrepos/vscode\nenabled1\ngpgcheck1\ngpgkeyhttps://packages.mi…

华清远见作业第二十八天——网络编程(第三天)

思维导图&#xff1a; 向服务器发送数据实现下载 代码&#xff1a; #include <a.h> void menu(); int download(int cfd, struct sockaddr_in sin); #define SER_PORT 69 #define SER_IP "192.168.125.4" int main(int argc, const char *argv[]) {//1创建用…

基于ssm的线上旅游体验系统+vue论文

目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 2 系统开发环境 3 2.1 vue技术 3 2.2 JAVA技术 3 2.3 MYSQL数据库 3 2.4 B/S结构 4 2.5 SSM框架技术 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2 操作可行性 5 3…

生意参谋指数转换异常,有什么可替代的天猫数据查询工具?

近期&#xff0c;越来越多天猫平台的商家反映生意参谋的指数转换功能无法正常使用。 原本用指数替代真实数据的功能就已经把参考的意义和价值减半&#xff0c;而如今如果连指数转换功能都无法使用&#xff0c;必然会大大影响品牌商家在电商运营过程中严谨的数据分析和测算结果&…

短视频IP运营流程架构SOP模板PPT

【干货资料持续更新&#xff0c;以防走丢】 短视频IP运营流程架构SOP模板PPT 部分资料预览 资料部分是网络整理&#xff0c;仅供学习参考。 抖音运营资料合集&#xff08;完整资料包含以下内容&#xff09; 目录 抖音15秒短视频剧本创作公式 在抖音这个短视频平台上&#…

ssm基于Java的药店药品信息管理系统的设计与实现论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;药品信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广大…

一步直达 - CDPATH的妙用

文章目录 一步直达 - CDPATH的妙用更多信息 一步直达 - CDPATH的妙用 适用于贼长的目录路径 如果你的目录路径贼长&#xff0c;一定要用一下这个命令。 变量CDPATH定义了目录的搜索路径&#xff0c;这个设置特别适合经常需要进入到某个目录&#xff0c;此时这个设置就及其有用…

软件测试|Git:fatal: refusing to merge unrelated histories错误分析与解决

问题介绍 在使用Git时&#xff0c;有时我们可能会遇到以下错误消息&#xff1a; fatal: refusing to merge unrelated histories这个错误通常发生在尝试合并两个不相关的Git仓库历史时。在本文中&#xff0c;我们将详细解释为什么会出现这个错误以及如何解决它。 问题分析 …

使用Sqoop的并行处理:扩展数据传输

使用Sqoop的并行处理是在大数据环境中高效传输数据的关键。它可以显著减少数据传输的时间&#xff0c;并充分利用集群资源。本文将深入探讨Sqoop的并行处理能力&#xff0c;提供详细的示例代码&#xff0c;以帮助大家更全面地了解和应用这一技术。 Sqoop的并行处理 在开始介绍…

java获取已经发送谷歌邮件的打开状态

1.前言 现在网上的方案都是在邮件里面插入一张图片的地址&#xff0c;当收件人打开之后&#xff0c;就会发送请求到指定路径的服务器上&#xff0c;然后在请求的controller里面处理邮件的状态&#xff0c;这个方案确实是行得通的&#xff0c;本文章只是给大家避个坑&#xff0…

UE4使用技巧

打开蓝图编辑器时不是打开一个新窗口&#xff0c;而是作为主窗口 适用于全部的打开新窗口的操作 蓝图编译时自动保存 开始游戏后立即捕获鼠标

服务器感染了.DevicData-P-XXXXXXXX勒索病毒,如何确保数据文件完整恢复?

引言&#xff1a; 在当今数字化时代&#xff0c;勒索病毒已成为网络安全威胁的一个严峻问题。其中&#xff0c;.DevicData-P-XXXXXXXX 勒索病毒以其恶意加密文件的手段引起了广泛关注。本文将介绍该病毒的特点、数据恢复方法以及如何预防遭受其攻击。 如不幸感染这个勒索病毒&…