天天搜  范文大全 

.net学习心得

 

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

}

}

}

添加完之后编译生成一下,就会在这个类库项目中的bin\debug中有一个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")

{

12

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)里各有一个myclass类,这时可以这样引入命名空间,

using aclass=namespace1.myclass;

using bclass=namespace2.myclass;

实例化时:

aclass my1=new aclass;

bclass my2=new bclass;

(3)using定义范围

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

using(class1 cls1=new class1())

{

}

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

12

本文地址:https://www.ttso.cn/a/6qqz21.html

与“.net学习心得”相关的文档有哪些?

  • 学习.net心得
  • 1.命名空间:命名空间是一种特殊的分类机制,它将与特定功能集有关的所有类型都分到一起,是.net避免类  名冲突的一种方式。  2.变量的作用域:一个变量的作用域是指能够使用该变量的程序区域。...

  • 客服学习心得
  • 你知道客服学习心得是怎样的吗?今天小编为大家整理了关于客服学习心得,欢迎大家阅读!  客服学习心得篇一  一、客服工作需要具备良好的心理素质。...

  • 内衣学习心得
  • 通过这次的内衣销售学习,个人认为我们终端内衣店铺在策划促销活动时,一定要不落俗套,结合自己身边的人和事,加以独创方可取得预期效果。下面是小编为大家收集整理的内衣学习心得,欢迎大家阅读。...

  • 学习心得
  • 一、更加明确了律师和职业定位。律师法将律师定义为:“律师是指依法取得律师执业证书,接受委托或者指定,为当事人提供法律服务的执业人员。 律师应当维护当事人合法权益,维护法律正确实施,维护社会公平和正义。”为一定义突出了律师的三大功能:第一是维护当事人的利益,第二是维护法律的...

  • 学习心得感悟范文
  • 学习,让我们获得知识,使我们进步,我们一定要正视学习和实践,多从学习中感悟和体会,下面是小编精心整理的学习心得体会范文,供大家学习和参阅。  学习心得体会  大家都知道,一分耕耘,一分收获。...

  • 企业实践学习心得
  • 你知道企业实践学习心得是什么吗?接下来就是小编为大家整理的关于企业实践学习心得,供大家阅读!  ...

  • 单位学习心得感悟
  • 参加单位学习,我们要进一步总结创建学习型单位的经验,完善学习制度和激励机制,使学习活动经常化、制度化,为加强党的的执政能力建设创造更坚实的基础,谈谈心得感悟。...

  • 纪律学习心得感想
  • 加强纪律教育增强廉政意识确保廉洁从政才能确保科学发展取得学习实践科学发展观的丰硕成。你知道纪律学习心得感想是什么吗?接下来就是小编为大家整理的关于纪律学习心得感想,供大家阅读!...

  • 生物实验学习心得
  • 在这次的生物实验学习中,演示实验,能够紧扣课堂的教学环节,以它形象生动的教学效果、灵活多变的试验方式有效地配合生物学的课堂教学,能够提高学生的学习兴趣,有利于学生对知识的理解和掌握。...

  • 马哲学习心得
  • 这学期的“马哲”课学习,总是在细小的地方有收获,上课有收获,读书有收获,写论文有收获。下面是小编为大家收集整理的马哲学习心得,欢迎大家阅读。...

    版权声明:

    1、本网站发布的文章《.net学习心得》为天天搜网友原创或整理,版权归原作者所有,转载请注明出处!

    2、本网站文档/文章《.net学习心得》仅代表作者本人的观点,与本网站立场无关,作者文责自负。

    3、本网站一直无私为全国网友提供大量优秀文档范文,免费帮助网友审核文档,评改文档。对于不当转载或引用本网内容而引起的民事纷争、行政处理或其他损失,本网不承担责任。

    Top