`

C#学习笔记——反射

 
阅读更多

Type类

BCL声明了一个叫做Type的抽象类,它被设计用来包含类型的特性。使用这个类的对象能让我们获取程序使用的类型的信息。

 

由于Type是抽象类,因此它不能有实例。而是在运行时,CLR创建Type(RuntimeType)派生的类的实力,Type包含了类型信息

Type类对象常用成员

成员 成员类型 描述
Name 属性 返回类型的名称
Namespace 属性 返回包含类型声明的命名空间
GetFields 方法 返回类型的字段列表
GetProperties 方法 返回类型的属性列表
GetMethods 方法 返回类型的方法列表

 

 

获取Type对象

方法一:

object类型包含了一个叫做GetType方法,返回实例的Type对象的引用。

Type t = myInstance.GetType();

 

方法二:

Type t = typeof( DerivedClass );

 

 

 

特性

特性的目的是告诉编译器把程序结构的某组元数据嵌入程序集。

 

告诉编译器把程序结构的某组元数据嵌入程序集。通过特性应用带结构来实现。

    在结构前防止特性片段应用特性。

    特性片段被方括号包围,其中是特性名和特性的参数列表。

 

例:把Serializable的特性应用到MyClass。Serializable没有参数列表。

[Serializable]

public class MyClass

{....}

 

[Myattribute("Simple class","Version 3.57")]

public class MyOtherClass

{...}

 

 

一些有关特性的需要了解的重要事项如下:

    大多数特性只针对直接跟随在一个或多个特性片段后的结构。

    应用了特性的结构称为作为被特性装饰。

 

 

预定义的保留的特性

Obsolete特性

Obsolete特性允许我们将程序结构标注为过期的并且在代码编译时显示有用的警告消息。

例:

class Program

{

    [Obsolete("Use method SuperPrintOut")]    // 将特性应用到方法

    static void PrintOut(str)

    {

        Console.WriteLine(str);

    }

 

    static void Main(string[] args)

    {

        PrintOut("start of Main");

    }

 

}

 

方法依然可以被调用。编译器编译时产生警告消息,通知正在使用一个过期的结构。

 

 

Conditional特性

Conditional特性允许我们包括或排斥某个特定方法的所有调用。为方法声明应用Conditional特性并把编译符作为参数来使用。

 

 

预定义的特性

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    C#易筋经——反射、反射加壳、反射脱壳、反射注册机

    C#易筋经——反射、反射加壳、反射脱壳、反射注册机

    C#6.0学习笔记——从第一行C#代码到第一个项目设计(源码)

    C#6.0学习笔记——从第一行C#代码到第一个项目设计书籍配套源码。书籍下载地址:https://download.csdn.net/download/wosingren/10463453 https://download.csdn.net/download/wosingren/10463468

    Learning hard C# 学习笔记

    Learning hard C# 学习笔记

    C#6.0学习笔记——从第一行C#代码到第一个项目设计(第二个包)

    在本书最后一章,专门设计了综合实例——“综合实例1: 照片面积计算机器”和“综合实例2: 文件加密与解密工具”,通过这两个综合实例,既可以将前20章的知识融会贯通,又可以抛砖引玉,真正教会读者开发C#应用...

    C#6.0学习笔记 从第一行C#代码到第一个项目设计周家安著

    《C# 6.0学习笔记:从第一行C#代码到第一个项目设计》是由周家安编著的一本深入浅出的C#编程教程。这本书主要针对C#初学者和有一定基础的开发者,旨在帮助读者全面理解C# 6.0版本的新特性和编程技巧,并通过实际项目...

    C#6.0学习笔记——从第一行C#代码到第一个项目设计(第一个包)

    在本书最后一章,专门设计了综合实例——“综合实例1: 照片面积计算机器”和“综合实例2: 文件加密与解密工具”,通过这两个综合实例,既可以将前20章的知识融会贯通,又可以抛砖引玉,真正教会读者开发C#应用...

    LearningHard C#学习笔记

    LearningHard C#学习笔记,学习C#的经典入门教材。 非常适合初学者,希望大家一起努力。

    C#6.0学习笔记 从第一行C#代码到第一个项目设计 随书源码

    本学习笔记旨在帮助初学者从零基础开始掌握C#编程,逐步进阶到能够独立设计项目。随书源码为学习提供了实践操作的平台,确保理论与实践相结合。 一、C# 6.0基础语法 1. 变量与数据类型:C#支持多种数据类型,包括...

    c#插件模式 ——例子(利用反射机制)

    c#插件模式 ——例子(利用反射机制) foreach (ListViewItem item in listView1.Items) { if (item.Checked) { Assembly assembly = Assembly.LoadFile(Path.Combine(pluginpath, "TestComWin.dll")); // ...

    C#程序设计——Windows项目开发

    总的来说,C#程序设计——Windows项目开发涵盖了从基础语法到高级特性的广泛知识,包括但不限于C#语言本身、.NET Framework、Visual Studio IDE、Windows Forms设计、事件驱动编程、数据绑定、资源管理、异常处理、...

    C#学习笔记——基本语法

    C#,又名Csharp,天朝喜欢叫C井。 C#是一种面向对象的编程语言。在面向对象的程序设计方法中,程序有各种相互交互的对象组成。相同种类的对象通常具有相同的类型,或者说,是在先沟通那个的class中。 例如,以...

    C# FIR滤波器——含低通、高通、带通与带阻.zip

    在这个"C# FIR滤波器——含低通、高通、带通与带阻.zip"压缩包中,包含的是用C#语言实现的一系列FIR(Finite Impulse Response,有限冲击响应)滤波器的代码。FIR滤波器是一种线性相位、稳定的数字滤波器,广泛应用...

    编程学习笔记——初级

    编程学习笔记——初级 这篇笔记主要涵盖了初学者在北大青鸟学习编程时涉及的基础知识,包括DOS命令、Java和C#的基础、SQL Server的基本概念以及HTML基础等内容。以下是各个主题的详细说明: 1. DOS命令: DOS是...

    Visual C#学习笔记光盘

    Visual C#学习笔记光盘 简介:本书由浅入深地讲解Visual C# 2005编程知识,全书内容分为6篇,共27章,第一篇介绍Visual Studio 2005开发环境和C#基础,其中包括Visual C# 2005简介,C#语言基础,面向对象编程...

    课件 C# 共2——02

    【标签】"C# 共2——02 课件" 明确指出这是与C#编程相关的学习资料,"共2——02"表示这是一个系列课程的第二个部分,而"课件"则提示这些内容可能包括演示文稿、讲义或其他辅助教学材料。 【压缩包子文件的文件名称...

    c#面向对象——封装

    c#面向对象——封装

Global site tag (gtag.js) - Google Analytics