VC#.NET入门精典------(专题技术理解)组件篇(原创)

原创 2004年08月17日 20:09:00

CSDN原创文章.作者asusharp(拂尘之手),如需转摘,请注明作者.

在开始组件的讲解前我们得先明白几个概念的区别.那就是组件(Component),控件(Control),容器(Container)和场所(Site).

1.组件(Component)

    在Microsoft.Net Frameworks中.类是组件的实现形式。在面向对象程序设计中,所有具有功能的代码都应该封装在某个单元模块中,组件是类也就成理所当然的事情。但组件不同于其他的类。类为了变成组件,必须实现System.ComponentModel.IComponent接口。并提供一个没有参数的构造方法。如果一个类继承自实现了这个接口的类,那它也将成为组件。此外,组件可以被包含和安置在容器中,当它被安置在容器中时,它可以通过容器提供的场所和容器进行交互。

2.控件(Control)

    控件是具有用户接口(UI)的组件。在.net Framework中,只有继承自System.Windows.Forms.Control或System.Web.UI.Control的类才是控件,这两个类都实现了System.ComponentModel.IComponent接口。System.Windows.Forms.Control本身提供了UI功能,而System.Web.UI.Control提供了可以方便地加入UI的框架。

3.容器(Container)

    容器用来“盛放”组件,一个容器可以包含一个或多个组件,这些组件称为容器的子组件。容器也是类,一个类要成为容器,必须实现System.ComponentModel.IContainer接口,并提供一个没有参数的构造方法,也可以继承自实现了这个接口的类。

4.场所(Site)

    场所由容器提供,容器使用场所管理子组件,并和它们交互作用。通常情况下,容器和场所在同一个单元模块中实现。一个类要成为场所,必须实现System.ComponentModel.ISite接口。

    当在VS.NET中开发Windows Forms或Web Forms组件和控件时,没有必要实现容器和场所,因为Windows Forms Designer和Web Forms Designer就是Windows Forms和Web Forms控件的容器。

 

 

    组件是独立的代码模块,那其他代码或组件(比如容器)如何使用组件呢?又如何与组件进行交互呢?这就涉及到具体编程技术问题。下一讲将介绍和组件设计有关的程序设计技术。包括:属性,事件,Delegate,特性(Attribute)及授权。请关注。(完成目期:2004.08.17)

 

Component,Container,IServceContainer,ISite 使用初探

        大家好,大约半年多没在园子上发贴子了,主要是跳槽到新公司后一直在开发新产品,现在就要发布正式版了,是一个论坛软件,官方站点是http://nt.discuz.net。        ...
  • daizhj
  • daizhj
  • 2006年12月20日 11:35
  • 779

【收藏】经典shell十三问

shell 十三问: 1) 为何叫做 shell ?  2) shell prompt(PS1) 与 Carriage Return(CR) 的关系?  3) 别人 echo、你也 ...
  • apache0554
  • apache0554
  • 2015年02月11日 15:41
  • 13859

SHELL编程之常用技巧

前言本文是shell编程系列的第六篇,集中介绍了bash编程中部分高级编程方法和技巧。通过学习本文内容,可以帮你解决以下问题: bash可以网络编程么? .(){ .|.& };. 据说执行这些符号可...
  • renwotao2009
  • renwotao2009
  • 2016年06月21日 07:58
  • 1016

React-Native从入门到放弃(一)准备篇

facebook官方教程(英文) react-native源码 中文视频(目前中文只更新到0.28) 前言 虽然大维哥从事编程的时间不是很长,但是一直认为未来计算机语言的发展必将是跨平台,...
  • ruglcc
  • ruglcc
  • 2016年12月20日 05:25
  • 807

Java多态性理解,好处及精典实例

核心: 1、多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编译时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到...
  • Jian_Yun_Rui
  • Jian_Yun_Rui
  • 2016年10月26日 20:12
  • 9449

精典的正则表达式

想起几天没有写博文了 今天给大家贡献一份正则表达式 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{n}$"。...
  • dsn727455218
  • dsn727455218
  • 2017年03月28日 14:25
  • 193

JAVA精典算法

JAVA经典算法40题 【程序1】  题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?   1....
  • wtfpewfn
  • wtfpewfn
  • 2013年01月21日 09:11
  • 413

Oracle中面试题的查询语句

01. 查询员工表所有数据,并说明使用*的缺点      select * from emp;      01.查询职(job)为'PRESIDENT'的员工的工资      select...
  • ailiandeziwei
  • ailiandeziwei
  • 2013年04月22日 14:24
  • 2781

20151221-精典语录

===========================================================梦想就是一种让你感到坚持,就是幸福的东西.–电影《中国合伙人》最大的骗子其实是我们...
  • sy_lixiang
  • sy_lixiang
  • 2017年02月13日 11:25
  • 505

Log4j2 精典配置

Configuration 节点上非常重要的一个属性 monitorinterval=”10”表示每10秒检测1次配置文件的变化 配置文件的思想是将依赖jar包的关键日志信息输出到日志文件frame...
  • hl_java
  • hl_java
  • 2017年12月11日 18:28
  • 47
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC#.NET入门精典------(专题技术理解)组件篇(原创)
举报原因:
原因补充:

(最多只允许输入30个字)