当前位置:才华都>体裁作文>心得体会>

关于net学习心得

心得体会 阅读(3.36W)

学习心得

关于net学习心得

1.反射:反射是中的重要机制,通过反射可以在运行时获得中每一个类型,包括类、结构、委托和枚举的成员,包括方法、属性、事件,以及构造函数等。有了反射,既可以对每一个类型了如指掌。

下面来演示一下反射的实例

(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)

eline("hello world");

else

eline("hello," + name);

}

}

}

添加完之后编译生成一下,就会在这个类库项目中的ebug中有一个文件。然后添加一个控制台应用程序。引入action的命名空间。添加的代码如下:

using system;

using ric;

using ;

using ;

using ection;//添加反射的命名空间

namespace consoleapplication4

{

public class program

{

static void main(string[] args)

{

eline("列出程序集中的所有类型");

assembly ass = from("");

type[] mytype = ypes();

type classperson = null;

foreach (type p in mytype)

{

eline();

if (=="classperson")

{

classperson = p;

}

}

eline("列出classpersonl类中的所有的方法");

methodinfo[] md = ethods();

foreach(methodinfo m in md)

{

eline();

}

eline("实例化classperson类,并调用sayhello方法");

object obj = teinstance(classperson);

object objname=teinstance(classperson,"飞鹰");

methodinfo mysayhello = ethod("sayhello");

ke(obj, null);//无参数构造函数

ke(objname, null);//有参构造函数

key();

}

}

}

运行之后的结果是:

列出程序集中的所有类型

classperson

列出classpersonl类中的所有的方法

get_name

set_name

get_sex

set_sex

get_age

set_age

sayhello

tostring

equals

gethashcode

gettype

实例化classperson类,并调用sayhello方法

hello world

hello,飞鹰

g的作用

(1)引入命名空间,如:using system。

(2)using别名。

格式:using 别名=包括详细命名空间信息的具体的类型

例如:在两个命名空间(namespace1,namespace2)里各有一个myclass类,这时可以这样引入命名空间,

using aclass=ass;

using bclass=ass;

实例化时:

aclass my1=new aclass;

bclass my2=new bclass;

(3)using定义范围

即时释放资源,在范围结束时处理对象。例如:

using(class1 cls1=new class1())

{

}

在这个代码段结束时会触发cls1的dispose方法释放资源。