引言:
C#锐利体验
第四讲 类与对象[/B]
南京邮电学院 李建忠(cornyfield@263.net)
组件编程不是对传统面向对象的抛弃,相反组件编程正是面向对象编程的深化和发展。
摘要:
第一个c#程序:经典例程hello world
“hello world”可以说是学习每一种编程语言的第一个例程了。我们可以在notepad、wordpad等任何编辑器中输入以下的c#代码,并保存为helloworld.cs,最后在命令行中执行csc helloworld.cs来运行文件:
// using system
using system;
class hell......
摘要:
如何装载等待光标?
光标是drawing名称空间的一部分。要显示一个特定的光标,可以查阅文档得到所有可用的类型。要显示等待光标,请试试以下代码:
componentsname.cursor = system.drawing.cursors.waitcursor;
// back to arrow
cursor = cursors.arrow
如何获取机器上......
【教程】【转载】C#锐利体验(李建忠)—04
c#锐利体验
第四讲 类与对象[/b]
南京邮电学院 李建忠(cornyfield@263.net)
组件编程不是对传统面向对象的抛弃,相反组件编程正是面向对象编程的深化与发展.类作为面向对象的灵魂在c#语言里有着相当广泛深入的应用,很多非常“sharp”的组件特性甚至都是直接由类包装而成.对类的深度掌握自然是我们“sharp xp”重要的一环.
类
c#的类是一种对包括数据成员,函数成员与嵌套类型进行封装的数据结构.其中数据成员可以是常量,域.函数成员可以是方法,属性,索引器,事件,操作符,实例构建器,静态构建器,析构器.我们将在“第五讲 构造器与析构器”与“第六讲 域 方法 属性与索引器”对这些成员及其特性作详细的剖析.除了某些导入的外部方法,类及其成员在c#中的声明与实现通常要放在一起.
c#用多种修饰符来表达类的不同性质.根据其保护级c#的类有五种不同的限制修饰符: public可以被任意存取; protected只可以被本类与其继承子类存取; internal只可以被本组合体(assembly)内所有的类存取,组合体是c#语言中类被组合后的逻辑单位与物理单位,其编译后的文件扩展名往往是“.dll”或“.exe”. protected internal唯一的一种组合限制修饰符,它只可以被本组合体内所有的类与这些类的继承子类所存取. private只可以被本类所存取.
如果不是嵌套的类,命名空间或编译单元内的类只有public与internal两种修饰.
new修饰符只能用于嵌套的类,表示对继承父类同名类型的隐藏.
abstract用来修饰抽象类,表示该类只能作为父类被用于继承,而不能进行对象实例化.抽象类可以包含抽象的成员,但这并非必须.abstract不能与new同时用.下面是抽象类用法的伪码: abstract class a{ public abstract void f();}abstract class b: a{ public void g() {}}class c: b{ public override void f() { //方法f的实现 }}
抽象类a内含一个抽象方法f(),它不能被实例化.类b继承自类a,其内包含了一个实例方法g(),但并没有实现抽象方法f(),所以仍然必须声明为抽象类.类c继承自类b,实现类抽象方法f(),于是可以进行对象实例化.
sealed用来修饰类为密封类,阻止该类被继承.同时对一个类作abstract与sealed的修饰是没有意义的,也是被禁止的.
对象与this关键字
类与对象的区分对我们把握oo编程至关重要.我们说类是对其成员的一种封装,但类的封装设计仅仅是我们编程的第一步,对类进行对象实例化,并在其数据成员上实施操作才是我们完成现实任务的根本.实例化对象采用myclass myobject=new myclass()语法,这里的new语义将调用相应的构建器.c#所有的对象都将创建在托管堆上....
下一页 摘要:
dynamic method invocation
one very useful feature related to reflection is the ability to create objects dynamically and call methods on them.
note : class1.cs has methods which will be dyn......