1.c#运算符
checked--溢出检查
is --判断是否类型对象
as -引用类型的显式类型转换
2.委托--只是包含方法地址的对象类型
3.抽象类里访问的类必须是public的,否则就报编译错误:可访问性不一致。
4.正则表达式-“\b"正则开始和结束标识, “*"匹配所有字符,正则命名空间:System.Text.RegularExpressions;
5.System.Collections对象类型,泛型集合类System.Collections.Generic
6.c#里也有指针,不过要把项目属性改成可以运行不安全代码。也有析构函数不过要实现IDisposeable接口。
7.反射:和java反射类似
2009-03-30 16:28 328人阅读 收藏 举报
一.什么是反射
在运行时环境,能否根据一个类的名字,来得到这个类的属性和方法?对于任何一个运行时的对象能否动态调用这个对象的方法?答案是可以的。这种动态的获取类的信息以及动态调用一个对象的方法的机制叫做反射。
反射提供的主要功能:
1.在运行时判断任意一个对象所属的类
2.在运行时构造一个类的对象
3.在运行时判断一个类所具有的属性和方法
4.在运行时调用一个对象的方法
实现反射的过程:
1.加载一个类
2.根据这个类动态创建一个对象
3. 动态得到这个对象的方法
4.调用这个对象的方法
二.JAVA中的反射
需要导入包:import java.lang.reflect;
try {
//加载类的三种方法
// Class<?> classType = Class.forName("com.ls.reflecttest.Person");
// Class<?> classType = Person.class;
Class<?> classType = Person.getClass();
//创建对象,第一种方法只能调用默认的构造方法,第二种方法可以调用带参的构造方法
// Object object = classType.newInstance();
Object object = classType.getConstructor(new Class[] {int.class, String.class, int.class}).newInstance(new Object[] {12, "wdw", 12});
//动态得到该对象的方法
Method sayHelloMethod = classType.getMethod("sayHello", new Class[]{String.class});
sayHelloMethod.invoke(object, new Object[] {"wdw"});
//动态得到所有属性,
Field[] filds = classType.getDeclaredFields();
for(int i=0; i < filds.length; i++) {
System.out.println(filds[i].getName());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
此外还有很多方法:得到所有方法getDeclaredMethods(), getField()等等
三.C#中的反射
感觉跟JAVA中的反射机制是一样的,首先引入命名空间:using System.reflection;
//得到类型
Type type = Type.GetType("ReflectTest.Person");
//得到该类型所在的程序集
Assembly assembly = Assembly.GetAssembly(type);//类似于JAVA中的加载
//C#中可以直接加载文件
//Assembly assembly = Assembly.LoadFile("文件路径"); //JAVA中没有这种方法
//创建对象
Object o = assembly.CreateInstance("ReflectTest.Person");
//动态获得方法
MethodInfo method = type.GetMethod("ToString");
//调用方法
Console.WriteLine(method.Invoke(o, new object[] { }));
四.总结
原来各种语言都是相同的,反射机制也是一样的只不过换了几个类,几个方法名而已,慢慢体会其实不单单是反射机制,两种语言有很多相同之处,思想都是一样的,继续努力,加油!对比原来的java框架,看是否能改造目前c#框架至少把反射使用
发送邮件
http://wenku.baidu.com/view/86719e7f31b765ce05081463.html
http://apps.hi.baidu.com/share/detail/6343308
http://www.sudu.cn/info/html/edu/20071219/113184.html
分享到:
相关推荐
《Inside C#--C#编程从入门到精通》是一本深度解析C#编程语言的教程,旨在帮助初学者和有经验的程序员全面掌握C#的核心概念和技术。C#是由微软公司开发的一种面向对象的编程语言,广泛应用于Windows平台、游戏开发、...
《Windows高级编程C#1-6》是一份深入探讨Windows平台下C#编程技术的宝贵资料,涵盖了从基础到进阶的多个主题。本压缩包是该系列的第一部分,包括了1到6个章节的内容,旨在帮助开发者提升在Windows环境下使用C#进行...
《Windows应用高级编程-C#编程篇》是一本深入探讨如何使用C#语言开发高效、稳定且用户友好的Windows应用程序的专业指南。这本书涵盖了从基础到高级的C#编程技术,特别针对Windows平台进行了深入讲解,旨在帮助开发者...
《Windows应用高级编程-C#编程篇》是一本深入探讨C#在Windows平台上开发应用程序的教程。这本PDF教程共分为十一章,每章都详细阐述了C#编程的关键概念和技术,旨在帮助读者从初级到高级逐步提升自己的技能。以下是...
综合以上信息,这个压缩包提供了一个全面的C#学习路径,从基础的C#语法到ASP.NET的Web开发实践,涵盖了大量的编程概念和实际应用。对于想要掌握C#编程语言的人来说,这是一个宝贵的资源,可以帮助他们逐步提升技能,...
ASP.NET XML高级编程是针对C#开发者深入理解XML技术及其在Web应用开发中的实践的一门重要课程。XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、以及Web服务等场景。在...
文件"windows应用高级编程-C#编程篇.pdf"应为教程的主要内容,包含详细章节和实例代码。"中文資訊.txt"和"中文信息.txt"可能是教程的补充资料或中文版的介绍,可能包含了作者的见解、学习建议或更新信息。而...
总的来说,C#与NI-VISA的结合使得开发人员能够利用强大的.NET框架和直观的C#语法来控制各种测量设备。这不仅简化了软件开发,还提高了系统的可移植性和可维护性。通过深入学习和实践,你将能够构建出高效、可靠的...
《C#经典编程-220例》是一个包含大量C#编程实例的资源包,旨在帮助开发者深入理解和熟练掌握C#编程语言。这个压缩包涵盖了从基础语法到高级特性的各种示例,对于初学者和有经验的程序员来说都是一个宝贵的参考资料。...
《Windows应用高级编程 C#编程篇》是一本专注于C#技术在Windows桌面应用程序开发中的高级实践指南。这本书深入探讨了如何利用C#语言的强大功能和.NET Framework的丰富特性,来构建高效、稳定且用户友好的Windows应用...
从给定的文件信息中,我们可以提取出一系列关键的C#编程知识点,这些知识点涵盖了C#语言的基础到高级特性,包括语法结构、基本概念、类型系统、变量管理、转换规则等。下面是对这些知识点的详细解析: ### 1. 引入...
推荐的教材有《C#编程》等相关书籍,如周红安等编著的《C#》和清华大学出版社出版的相关著作,这些资源可以深入学习C#语法和实际应用。 8. **职业发展** 掌握C#技能对于进入IT行业,特别是在软件开发、系统集成、...
《Visual C#高级编程范例》是一本专为C#开发者设计的深入学习书籍,作者谭桂华通过实例解析的方式,旨在帮助读者掌握使用Visual C# .NET进行应用程序开发的各种技术和策略。这本书不仅覆盖了C#语言的基础知识,还...
在C#编程中,异常处理是保证程序健壮性的重要机制之一。通过练习题中提供的try-catch-finally语句块的使用,初学者可以深刻理解代码块的执行顺序和异常的捕获机制。比如,尝试实现一个可能抛出异常的代码块,并通过...
C# 基础练习-C# 基本语法编程练习实验 本实验旨在让学生掌握 C# 的基本语法结构,包括顺序结构、选择结构和循环结构语法的程序设计方法。通过本实验,学生将了解 C# 的数据类型、变量的声明方式、运算符的优先级、...
C#是一种广泛应用于游戏开发、桌面应用、移动应用和Web应用等领域的面向...总之,掌握C#的基础语法是编程之旅的第一步。通过系统学习和实践,开发者能够编写出高效、可靠的C#程序,为后续的项目开发打下坚实的基础。
总而言之,这份文档是C#学习者不可多得的宝贵资源,它从入门到高级特性,系统地涵盖了C#语言的方方面面,提供了丰富的例子和练习,旨在帮助学习者全面深入地理解和掌握C#编程技术。通过学习这份文档,读者可以有效地...
它的语法简洁明了,支持泛型、LINQ、异步编程等高级特性。而VB.NET(Visual Basic .NET)则是一种基于Visual Basic的经典编程语言,它同样运行在.NET Framework或.NET Core上,具有直观的语法,适合初学者入门。 ...
《C# 3.0与.NET 3.5高级编程》是针对C#语言和.NET Framework 3.5平台的一本深入学习指南。C# 3.0是.NET Framework 3.5的一部分,引入了许多新的特性和改进,使得C#在编程效率和灵活性上有了显著提升。这本书详细阐述...
这220个例子覆盖了C#编程的各个层面,从基础语法到高级特性,从控制流到面向对象编程,从异常处理到多线程,从数据访问到网络编程,全方位地展现了C#的强大功能。 1. **C#基础语法**:学习C#首先从基础语法开始,...