1.反射:反射是.net中的重要机制,通过反射可以在运行时获得.net中每一个类型,包括类、结构、委托和枚举的成员,包括方法、属性、事件,以及构造函数等。有了反射,既可以对每一个类型了如指掌。
下面来演示一下反射的实例
(1)新建一个类库项目。在解决方案上单击右键选择添加“新建项目”,在弹出来的框中选择“类库”,在下面名字栏中输入classlib。然后删除class1类,新添加一个类“classperson”,添加如下代码:
namespace classlib
{
public class classperson
{
public classperson():this(null)
{
}
public classperson(string strname)
{
name = strname;
}
private string name;
private string sex;
private int age;
public string name
{
get { return name; }
set { name = value; }
}
public string sex
{
get { return sex; }
set { sex = value; }
}
public int age
{
get { return age; }
set { age = value; }
}
public void sayhello()
{
if (null==name)
console.writeline("hello world");
else
console.writeline("hello," + name);
}
}
}
添加完之后编译生成一下,就会在这个类库项目中的bindebug中有一个classlib.dll文件。然后添加一个控制台应用程序。引入system.reflaction的命名空间。添加的代码如下:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.reflection;//添加反射的命名空间
namespace consoleapplication4
{
public class program
{
static void main(string[] args)
{
console.writeline("列出程序集中的所有类型");
assembly ass = assembly.loadfrom("classlib.dll");
type[] mytype = ass.gettypes();
type classperson = null;
foreach (type p in mytype)
{
console.writeline(p.name);
if (p.name=="classperson")
{
classperson = p;
}
}
console.writeline("列出classpersonl类中的所有的方法");
methodinfo[] md = classperson.getmethods();
foreach(methodinfo m in md)
{
console.writeline(m.name);
}
console.writeline("实例化classperson类,并调用sayhello方法");
object obj = activator.createinstance(classperson);
object objname=activator.createinstance(classperson,"飞鹰");
methodinfo mysayhello = classperson.getmethod("sayhello");
mysayhello.invoke(obj, null);//无参数构造函数
mysayhello.invoke(objname, null);//有参构造函数
console.readkey();
}
}
}
运行之后的结果是:
列出程序集中的所有类型
classperson
列出classpersonl类中的所有的方法
get_name
set_name
get_sex
set_sex
get_age
set_age
sayhello
tostring
equals
gethashcode
gettype
实例化classperson类,并调用sayhello方法
hello world
hello,飞鹰
2.using的作用
(1)引入命名空间,如:using system。
(2)using别名。
格式:using 别名=包括详细命名空间信息的具体的类型
例如:在两个命名空间(namespace1,namespace2)里各有一个my ……此处隐藏2531个字……握一种.net语言。
由于.net支持多种语言,所以读者可以根据自己的喜好选择一门计算机语言,但请注意以下选择语言的标准:
(1)必须是全面向对象的语言,只有面向对象的语言才能充分发挥.net的威力;
(2)拥有较多的开发者和技术资源,这样您就可以很容易地找到志同道合的人共同学习。
目前支持.net的语言已有几十种,而且还在不断地增加中。
微软官方提供的语言有以下几种:managed c++,c#,visual basic.net,j#。
c#和visual basic.net是目前.net下开发的主流语言
.net学习第三步:掌握windows form程序开发
在第三步中学习windows form是个好选择。所谓windows form程序,就是传统的运行于个人电脑上的单机应用程序,象大家常用的金山词霸。通过windows form技术的学习,读者可以掌握最重要最基础的windows软件开发技术,并对面向对象理论会有深入的体会,有了这些基础,深入学习网络编程就是水到渠成的一件事。
.net学习第四步:学习.net网络技术
第四步则是学习.net网络技术,具体而言,又可以按照以下顺序进行学习:
(1)asp.net:主要掌握如何设计asp.net网页,搭建一个运行于.net framework之上的web网站;
(2)web service:学习如何把网站的各种功能以web service的形式提供给外界,或者集成外部的web service实现功能强大的信息系统。web service是一个潜力无穷的新技术,将对下一代的互联网产生深远的影响。
(3).net reomting及相关技术:不像asp.net和web service主要用于互联网,.net remoting及相关的技术主要用于开发基于局域网的应用程序,目前大部分公司和企业都建有自己的局域网,开发基于局域网的信息系统具有很大的需求。
.net学习第五步:移动设备开发技术
学习移动设备开发技术,比如为手机、smartphone等智能移动设备开发程序,设计嵌入式系统等,.net compact framework就是专为移动设备应用程序开发而准备的,使用.net compact framework开发移动设备程序与使用.net framework开发普通程序是类似的,已有的.net framework开发经验仍然适用;
.net学习第六步:移动设备开发技术
进一步深入地学习企业级项目开发技术,成为一名系统架构设计师,这需要更进一步地学习相关理论和技术,比如设计模式、软件工程等,还有j2ee等.net竞争对手的技术。
.net学习 第七步:成为.net技术专家
如果你能沿着路线图走到这里,那就恭喜您,您已成为了一名.net技术专家,更宽广的道路将展现在您的面前。
看看这位老师准备怎样将一个生手带入编程世界的。以下为引用
打算做一名搞web开发的,个人认为要学的东西真的很多,而且我觉得有些知识最好是开始就应当
讲清楚,具体咱们慢慢说。
1、b/s,c/s
这是我想介绍的第一个概念,俗话说没吃过猪肉还没见过猪跑吗!大家都是这个年代的人。
软件应当都没少用,网站估计也都没少上。所以我打算从这个点切入。
2、web(db)服务器,iis
有了对b/s的理解,这里我主要是想引出iis。
3、http请求流程
之所以在没学任何语言之前介绍这个,我是想让他对web有个更深层次的认识。当你在浏览器中敲入
“http://”的时候,到底发生了什么。之前引入的web服务器也是打算为这个服务的。
4、html,css,javascript
结构、样式、行为----浏览器目前能认识的三种语言,所以这是我们搞web的首当其冲要掌握的。通过他们,我们才能和浏览器
搭上话。
html,我的计划是html重点学,起码要认识所有的html标签,重点学习各种表单元素。
css,对于css来说:
1)学习css格式
2)学习html中使用css的几种方式
3)介绍几个常用的css命令。
javascript:
1)介绍使用场景,引出ajax。
2)介绍基本语法。
3)介绍几个作为客户端验证的例子。
学html的时候,我计划让他做一个静态网站,可以部署到gae上。
5、get/post
学完html以后,我想单独把这一对概念介绍清楚。
6、开始c#
我的计划是开始c#的时候,只学习c#的东西,先不开始.net。
我用的书是《c#入门经典(第4版)》,这里有目录:http:///content/490456.htm
所以我直接从第三章开始,关于c#,先学下面这些,关于vs的东西一律跳过,我觉得这些东西在书上看很无味:
第3章 变量和表达式
第4章 流程控制
第5章 变量的更多内容
第6章 函数
第7章 调试和错误处理(只介绍 try...catch...finally)
第9章 定义类
第10章 定义类成员
第11章 集合、比较和转换(特别是关于集合的那些接口我希望能一次性搞定,当然这局限于我的水平。)
第12章 泛型(跳过泛型委托部分,另外委托和事件我也打算放在以后学asp.net的时候再讲)
7、面向对象编程
主要资料也是入门经典中的第8章 面向对象编程简介。
不过我打算再找找资料。
8、开始.net
如果能有幸学到这,我就替他庆幸了。
1) .net体系结构我计划用的资料是《c#高级编程(第4版)》中的第1章 .net体系结构。
这个在csdn上有连载:http://book.csdn.net/bookfiles/140/。
2)介绍一下c#语言和.net的一些联系。
推荐其他精彩范文:新手应该如何有效地学习.net
c# .net学习进程(个人总结)
对于女生来说,java与.net哪个更适合学习
面试题.net
浅谈.net mvc