一、.NET Framework
1、公共语言运行时(CLR) ——.NET的核心:.NET Framework的基础,它提供核心服务( 如内存管理、线程管理和远程处理);
2、.NET Framework 类库 (FCL):是一个与公共语言运行库紧密集成的可重用的类型集合。
3menustrip和toolstrip、ADO.NET——数据和 XML。
4、XML Web Service。
5、Web 窗体和服务。
二、
1、DOS时代:单一;本地;扩展名:exe。
2、Windows时代:应用程序的执行基于DLL(相同的功能可共享)。
3、.NET平台下:基于虚拟机。
三、C/C++ :直接编译成本地机器指令
1、优点:可以对系统进行低级的控制;运行速度快。
2、缺点:移植性(跨平台)、代码重用性 、运行中的安全性……
四、托管:
1、为什么要托管:为了实现通用语言和跨平台。
2、谁被托管:由各种编程语言生成的程序集。
3、被谁托管:CLR。
五、Microsoft Intermediate Language:
1、基于堆栈的语言。
2、在运行时被JITer即时编译为本机的机器语言。
3、对底层CPU抽象。
4、提高了程序的健壮性。
5、可以视为:面向对象的机器语言。
CIL = Common Intermediate Language
1、CIL相当于CLR的汇编语言。
2、Managed code == CIL code。
六、命名空间的目的:
1、.NET Framework类库包含了大量的类库,这些类库被组织在命名空间体系结构下
2、命名空间用“.”号来分组管理相关的类库
七、System 命名空间:
1、System 命名空间是根命名空间;
2、System 空间下包含Object对象,它是所有.NET类的隐含基类;
3、System 命名空间下包含异常处理、垃圾收集、IO、数据处理、文本处理等类库。
一、菜单:描述一个软件的大致功能和风格
1. 窗体菜单
2. 上下文菜单(快捷菜单)。
工具栏:能够通过按纽的单击事件快速执行相应的功能,具有和菜单一样的功能。
状态栏:常用于显示窗体的一些状态信息。
二、MenuStrip控件概述:
1、MenuStrip 控件支持多文档界面 (MDI) 和菜单合并、工具提示和溢出。
2、可以通过添加访问键、快捷键、选中标记、图像和分隔条,来增强菜单的可用性和可读性。
二、MenuStrip 控件的使用方式:
1、创建支持高级用户界面和布局功能的易自定义的常用菜单,例如文本和图像排序和对齐、拖放操作、MDI、溢出和访问菜单命令的其他模式。
2、支持操作系统的典型外观和行为。
3、对所有容器和包含的项进行事件的一致性处理,处理方式与其他控件的事件相同。三、ToolStrip 的常用属性:
Dock:获取或设置ToolStrip依靠在父容器的哪一边缘。
ShowItemToolTips:获取或设置一个值,指示是否在ToolStrip 项上显示工具提示。
ContextMenuStrip:该ToolStrip的上下文菜单。
Items:获取属于 ToolStrip 的所有项。
LayoutStyle: ToolStrip对其拥有的项如何布局,ToolStripLayoutStyle枚举
ImageList:获取或设置包含ToolStrip 项上显示的图像的图像列表。
IsDropDown:获取单击ToolStripItem时,是否显示下拉列表中的其他项。
OverflowButton:获取ToolStripItem,它是已启用溢出的ToolStrip 的溢出按钮。
GripStyle:获取或设置ToolStrip 移动手柄是可见还是隐藏。
四、MDI -- Multiple Document Interface:
1、多文档界面(MDI) 应用程序使您能同时显示多个文档,每个文档显示在各自的窗口中。
2、MDI 应用程序中常有包含子 菜单的“窗口” 菜单项,用于在窗口或文档之间进行切换。
3、MDI应用程 序的基础是 MDI 父窗体。它是包含MDI 子窗口的窗体。
4、MDI子窗体是多文档界面(MDI) 应用程序的必要元素,因为这些窗体是用户交互的中心。
五、创建父窗体:
1、将IsMDIContainer 属性设置为“true”。
2、这将该窗体指定为子窗口的MDI 容器。
六、创建子窗体:
在父窗口中调用子窗口。
MDIChild newMDIChild = new MDIChild();
newMDIChild.MdiParent = this;
newMDIChild.Show();
一、多态性(polymorphism)
多态性概述
1、当派生类从基类继承时,它会获得基类的所有方法、字段、属性和事件。
2、若要更改基类的数据和行为,有两种选择:可以使用新的派生成员替换基成员:new
(使用新的派生成员替换基类的成员需要使用 new 关键字。如果基类定义了一个方法、字段或属性,则new 关键字用于在派生类中创建该方法、字段或属性的新定义。new 关键字放置在要替换的类成员的返回类型之前。);可以重写虚拟的基成员:override。
二、多态性(Polymorphism):
1、“多态性”一词最早用于生物学,指同一种族的生物体具有相同的特性。
2、在运行时,可以通过指向基类的引用,来调用实现派生类中的方法。
3、C#中,同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果——多态性。
4、多态性通过派生类覆写(override)基类中的虚函数型(virtaul)方法来实现。
四、编译时的多态性——重载overload:编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。
五、运行时的多态性——覆写override:运行时的多态性就是指直到系统运行时,才根据实
际情况决定实现何种操作。C#中,运行时的多态性通过覆写虚(virtual)成员实现。
六、重载:是指在同一个作用域内(通常在同一个类中)以同样的名称声明两个或多个方法。
特点:两个‘必须’,一个‘可以’----方法名必须相同;参数列表必须不同;返回值类型可以不同。
七、覆写—— override:子类中为满足自己的需要来重复定义某个方法的不同实现——覆写;通过使用关键字override来覆写;只有虚方法和抽象方法才能被覆写。
八、覆写的特点——三“相同”:相同的方法名称;相同的参数列表;相同的返回值类型。
九、虚(方法、属性)——virtual
1、如果希望基类中某个方法或属性能够在派生类中进一步得到改进,则可以把它定义为虚。
2、在基类中定义虚方法:使用 virtual 关键字。
3、在派生类中覆写虚方法:用 override 关键字。
十、new 修饰符:
1、在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。
2、隐藏继承的成员时,该成员的派生版本将替换基类版本。虽然可以在不使用 new 修饰符的情况下隐藏成员,但会生成警告。如果使用new 显式隐藏成员,则会取消此警告,并记录要替换为派生版本这一事实。
3、若要隐藏继承的成员,请使用相同名称在派生类中声明该成员,并使用 new 修饰符修饰该成员。
十一、sealed 关键字:
1、sealed class--禁止该类被继承;
2、sealed 类成员--禁止子类覆写该成员;
例:子类B重写了基类A中的一个成员,并希望禁止B类的子类继续重写此成员,可以在B类中对该成员使用 sealed 修饰符:
class A
{ public virtual void Method(){} }
class B : A
{ public override sealed void Method(){} }
class C : B
{
// ERROR: Cannot override sealed members
public override void Method(){}
}
十二、base 成员:1、在派生类中,通过使用关键字 base 可以访问基类成员——base;
class Animal {
public virtual void Eat()
{Console.WriteLine ("Eat something");}
}
public class Cat : Animal {
public override void Eat() {
base.Eat();
Console.WriteLine("Eat animals");
}
}
2、派生类中调用基类的非缺省构造函数通过使用base关键字;
3、派生类可以调用基类的方法:通过使用 base 关键字;派生类在访问基类的时候有一定的限制,不能
访问 private 的成员;internal的基类成员只能被同一个程序集中的派生类访问。
十三、重载(overload) & 覆写(override):
Items Overload 重载 Override 覆写
位置 存在于同一类中 存在于继承关系的类中
方法名 相同 相同
参数列表 必须不同 相同
返回值 可以不相同 相同
一、术语:
1、派生/继承:特化一个基类,以包含附加的成员或者实现对基类成员的自定义。
2、派生/子类型:继承了较泛化类型的成员的特化类型。
3、基/超/父类型:其成员由派生类型继承的泛化类型。
4、继承关系:一个“is a”(属于)关系;派生类总是隐式地属于基类型。
二、继承(Inheritance):
1、继承性是一个面向对象的术语。它是从现有的类中派生出子类的能力。
2、我们把现有的类称为基类或父类;把派生出的类称为派生类或子类。
3、在C#中只允许单继承,就是子类有且仅有一个父类,所有这样的继承关系是一对一的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论