C#编程-属性和反射

在这里插入图片描述

在这里插入图片描述

属性和反射

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


介绍属性

对象是由其属性值描述的。例如,汽车可以使用它的构造、型号或颜色来描述。类似地,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.mzph.cn/news/623463.shtml

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

相关文章

ART-Adversarial Robustness Toolbox检测AI模型及对抗攻击的工具

一、工具简介 Adversarial Robustness Toolbox 是 IBM 研究团队开源的用于检测模型及对抗攻击的工具箱,为开发人员加强 AI模型被误导的防御性,让 AI 系统变得更加安全,ART支持所有流行的机器学习框架 (TensorFlow,Ker…

SpringMVC RESTful案例

文章目录 1、准备工作2、功能清单3、具体功能:访问首页a>配置view-controllerb>创建页面 4、具体功能:查询所有员工数据a>控制器方法b>创建employee_list.html 5、具体功能:删除a>创建处理delete请求方式的表单b>删除超链接…

Web3社交治理:用户参与决策的新模式

Web3时代的到来不仅仅带来了区块链技术的创新,还为社交治理带来了全新的模式。传统社交平台上的决策权通常集中在平台的运营方,而Web3社交治理的兴起意味着用户能够更直接地参与到社交平台的决策过程中。本文将深入探讨Web3社交治理的背景、工作原理以及…

帆软笔记-决策表报对象使用(两表格联动)

效果描述如下: 数据库中有个聚合商表,和一个储能表,储能属于聚合商,桩表中有个字段是所属聚合商。 要求帆软有2个表格,点击某个聚合商,展示指定的储能数据。 操作: 帆软选中表格单元&#xf…

SpringBoot 入门教程

1.复习SSM项目中,用spring,mybatis,springmvc这三个框架整合的项目。 SSM项目的所有类,这是用SSM整合一个搜索书籍种类和呈现的前端和后端的ssm的小项目。 2.springboot如何去开发这个页面: 新建springboot项目,勾选对…

MeshLab生成分形地形

文章目录 分型地形脊状多重分形其他地形 分型地形 分形地形是一种较为复杂的几何对象,MeshLab提供了下列五种地形生成算法,并且贴心地给出了每种算法相对较好的参数。 算法SeedOctaves缺项性分形增量偏移增益fBM(fractal Brownian Motion)11021.2--Sta…

【WPF.NET开发】WPF中的版式

本文内容 改进的文本质量和性能丰富的版式增强的国际文本支持增强的字体支持新的文本应用程序编程接口 (API) 本主题介绍 WPF 的主要版式功能。 这些功能包括改进的文本呈现质量和性能、OpenType 版式支持、增强的国际文本、增强的字体支持和新的文本应用程序编程接口 (API)。…

VUE好看的个人博客源码

文章目录 1.设计来源1.1 首页界面1.2 我的日记界面1.3 我的文章界面1.3.1 文章列表1.3.2 文章时间轴1.3.3 文章详细 1.4 我的相册界面1.5 我的源码界面1.6 认识我界面 2.效果和源码2.1 动态效果2.2 源码目录结构 源码下载 作者:xcLeigh 文章地址:https:/…

从头安装与使用一个docker GPU环境

GPU版docker的安装与使用 欢迎使用GPU版docker安装使用说明使用官方教程安装docker新建一个GPU版docker环境调用docker环境执行本地python文件 欢迎使用GPU版docker安装使用说明 使用官方教程安装docker 导入源仓库的GPG key curl -fsSL https://download.docker.com/linux/…

【计算机组成原理】期末复习试卷

目录 第一套试卷 第一套答案 第二套试卷 第二套答案 第三套试卷 第四套试卷 剩余试卷下载 第一套试卷 一、选择题(共20分,每题1分) 1.冯诺伊曼机工作方式的基本特点是______。 A.多指令流单数据流; B&#…

03MARL-联合策略与期望回报

文章目录 前言一、MARL问题组成二、联合策略与期望回报1.History-based expected return2.Recursive expected return 前言 多智能体强化学习问题中的博弈论知识——联合策略与期望回报 一、MARL问题组成 二、联合策略与期望回报 定义一种普遍的期望回报,能够用于…

多线程——阻塞队列

什么是阻塞队列 相比于一般的队列,有两个特点 1.线程安全 2.带有阻塞功能 1)队伍为空时,出队列就会出现阻塞,阻塞到其他线程入队列为止 2)队伍为满时,入队列就会出现阻塞,阻塞到其他线程出队列…

九州金榜|15岁初三男孩抑郁休学摆烂打游戏,高压教育要不得!

有一次和朋友一块聚餐,邻座是一位妈妈、和她大概七八岁的儿子,小男孩长得很帅气,没有像同龄人那样调皮捣乱,而是和妈妈很温馨的就餐。 看的出来一家人的素质很高,就餐过程中桌面保持的很整洁,交流声音也不…

你和家酿啤酒的距离,只差一台爱咕噜智能啤酒机

喝过工业啤酒,喝过精酿啤酒,但是你喝过在家自酿的啤酒吗? 啤酒是世界上消耗较多的饮料之一,而我国的啤酒年消耗量位居世界第一。近年来,随着越来越多的精酿啤酒涌入市场,精酿啤酒的概念与文化被更多消费者…

揭秘小米手机被疯狂吐槽的存储扩容技术

前段时间,在小米14的发布会上,雷布斯公布了名为“Xiaomi Ultra Space存储扩容”的技术,号称可以在512G的手机中再搞出来16G,256G的手机中再搞出8G。对于普通用户来说,能多得一些存储空间,无异是个很好的福利…

PID横向控制和仿真实现

文章目录 1. PID介绍2. PID横向控制原理3. 算法和仿真实现 1. PID介绍 PID是一种常见的控制算法,全称为Proportional-Integral-Derivative,即比例-积分-微分控制器。PID控制器是一种线性控制器,它将设定值与实际值进行比较,根据误…

Python轴承故障诊断 (11)基于VMD+CNN-BiGRU-Attenion的故障分类

目录 往期精彩内容: 前言 模型整体结构 1 变分模态分解VMD的Python示例 2 轴承故障数据的预处理 2.1 导入数据 2.2 故障VMD分解可视化 2.3 故障数据的VMD分解预处理 3 基于VMD-CNN-BiGRU-Attenion的轴承故障诊断分类 3.1 定义VMD-CNN-BiGRU-Attenion分类网…

【C#】当重复使用一段代码倒计时时,使用静态类和静态方法,实现简单的this扩展方法

欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《C#》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。…

多特征变量序列预测(三)——CNN-Transformer风速预测模型

目录 往期精彩内容: 前言 1 多特征变量数据集制作与预处理 1.1 导入数据 1.2 数据集制作与预处理 2 基于Pytorch的CNN-Transformer 预测模型 2.1 定义CNN-Transformer预测模型 2.2 设置参数,训练模型 3 模型评估与可视化 3.1 结果可视化 3.2 …

高效构建Java应用:Maven入门和进阶(五)

高效构建Java应用:Maven入门和进阶(五) Maven实战案例:搭建微服务Maven工程框架5.1 项目需求和结构分析5.2项目搭建和统一构建 总结 Maven实战案例:搭建微服务Maven工程框架 5.1 项目需求和结构分析 需求案例&#xf…