.net

 

 

 

 

VB6.0和VB.Net函数对照表

VB.NET函数表

 

vb vb vb vb vb vb vb vb vb vb

对象浏览器 查看 系统内部常量

Form1.BackColor = vbBlue

Form1.BackColor = qbcolor(0)

vbkeyup         vbkeydown         vbkeyleft vbkeyright         分别表示键盘上下左右的键代码

自定义常量         const pi = 3.14

变量         dim qq  as string                 相当于         dim qq $

隐式声明变量         不用dim 直接用i=i+1

 

 

冒号 把两行代码连成一行

空格加下划线 把一行代码分成两行

 

算术运算符

- 取负

& 连接

关系运算符:

LIke 比较样式

IS 比较对象变量

逻辑运算符:

Not(1>4)

and or

xor 异或

eqv 等价

imp 蕴含

 

输入输出:

print "你好" 相当于 form1.print "你好"         在窗体上输出

picture1.print ""         在图片框上输出

debug.print ""         在立即窗口中输出

printer.print ""                 用打印机输出

 

单是一个print 就是输出一个空行

print a , b         中间的分隔大点

print a ; b        

print a:tab(8):b                 tab (8)表示8个空                 Spc (8) 表示8个空格

Space$(5)         可用在字符串中,表示5个空格

格式说明符

Format $(字符串,格式)         str$()作用差不多                

print format$(99,"0000")         输出四位数

print format$(12.567,"#.###")         输出12.57

print format$(12.567,"000.0000")         输出012.567

print format$(12345,"#,#")         输出12,345

print format$(12345.123,"#,#.##")         输出12,345.12

print format$(12345,"000000,0")         输出0,012,345

print format$(12.567," $ 000.0000")         输出 $ 012.567

cls         清除窗体文字

move 2000,2500,2600,2300

currentX = 200

currentY         = 300

print ""

 

dim a as string

a = "fdd"

currentX = (scalewidth - textwidth(a))/2

currentY = (scalewidth - textheight(a))/2

print a

 

dim a as string

a = inputbox ("请输入你的姓名","提示","你好",3000,5000)

print "你的姓名是:"& a

 

biaoti$ = " 学生信息登记 "

b$ = inputbox("请输入姓名",biaoti)

 

msgbox "欢迎"&chr$(12)

msgbox "欢迎"&vbcrlf                 功能一样

 

dim a as string

a = msgbox ("你确定要退出程序吗",1+32)                 '这里的1用来显示一个“确定”及“取消”按钮,32用来显示系统问题图标

if a = 1 then

end

else

print "你没有退出本程序"

end if

 

text1.fontbold = not text1.fontbold                 '取反操作

 

form. show                 ' me.show

text1. setfocus

 

for next 循环:

dim i as integer

for i = 1 to 10

print i

next  i

 

当循环:

while a <> ...

...

wend

 

do循环:' while until 可放在loop后面

do while  条件

...

loop

do until 条件

...

loop

 

出口语句

private sub form_click()

dim i,num

do

for i = 1 to 10

num = int(rnd*10)

print num

select case num

case 5:exit for

case 8:exit do

case 9:exit sub

end select

next i

print "exit for"

loop

print "exit do"

end sub

 

goto语句         on goto语句

100

...

if .. then goto 100

 

 

vb数组

Option   Base  1                         指定数组的下标是从 开始的

dim a () as string                 动态数组

dim b (1,2) as integer

dim y(1949 to 2007)         可以用来表示1994年到2007年

dim a % (10),b ! (2 to 5) ,c # (8)

定义了整型(%)、单精度(!)、双精度(#)3种类型的数组

 

dim a(5,10 to 20,-2 to 8)

print lbound (a,1), ubound (a,1)         'lbound返回某一维的下界值,ubound返回某一维的上界值

 

redim a(3) as string

redim preserve  a(3) as string         重新定义此数组后,不会清除原来的值

redim 的是临时数组,过程结束后会释放

 

erase 数组名                 数组清除

 

for each .. in  .next .

dim a (1 to 5)

for each x in a

print x

next x

 

a = array ("2121","2121","2122","2122123")

 

 

vb.net vb.net vb.net vb.net vb.net

Me .BackColor = Color.SteelBlue

 

 

C# C# C# C# C# C# C# C# C# C#

变量区分大小写

变量要先声明才能赋值,才能用,引用等

string aa="ddd",bb="eee",cc="dfdfd";

 

VAR 是3.5新出的一个定义变量的类型

VAR 可代替任何类型

必须在定义时 初始化 。也就是必须是var s = “abcd”形式

var要求是 局部变量

一但初始化完成,就不能再给变量赋与初始化值类型不同的值了。

使用var定义变量和object不同,它在效率上和使用强类型方式定义变量完全一样。

 

 

 

 

 

 

 

C# 效率 总结:

测试时间:          DEMO

遍历          :          foreach (  in  )    GetEnumerator  L ibrary 也可以用 迭代器 yield

数组 参数 params

枚举 enum  枚举是用来声明一个命名常量的值类型

System.Enum →System.ValueType→System.Object [W1]          DEMO  

多个枚举成员可以共享一个关联值 demo

枚举转换         DEMO         DEMO1                

同时使用结构与枚举 DEMO [W2]

结构 struct  结构与枚举可以实现接口,不可以继承  System.ValueType →System.Object

结构是值类型 具有值语义          由于是值类型,所以开销小,效率高          DEMO

而类是引用类型 具有引用语义

1.    结构主要用于组织数据

2.    结构不支持继承但支持接口

3.    结构实例的默认值不是null,而具有默认的初始值  因为不是引用类型

4.    在结构和类中,this的意义不同

5.    实例字段声明中不能含有变量初始值设定项

6.    不能声明 无参数的实例构造函数

 

 

泛型   (更高的存储效率) [W3]

DEMO          DEMO2          DEMO3         

泛型约束          where          DEMO

泛型集合类          DEMO

自定义 泛型集合类         

泛型迭代器                  

静态类 /成员/方法  (不能被实例化,也不能派生子类,不能继承,默认是 object ) [W4]

索引器          DEMO          重载索引器          DEMO

集合 数组是最基本最常用的集合 System.Collection. ICollection 是基类

都要实现System.Collection. IEnumerable 接口,实殃这接口的类能一一列举集合类所包含的数据

1.             数组的方法和属性          GetEnumerator                 Copy        

2.             CreateInstance 方法         

3.             数组转换                   DEMO

常见的集合类:         

ArrayList         ArrayList 2

Hashtable   Hashtable2  

Queue          先进先出

SortedList

Stack                  后进先出

foreach          DictionaryEntry

自定义集合类:          Library          迭代器的Livrary

迭代器:                   DEMO          DEMO2

字符串与正则表达式

 

委托 /事件/匿名方法  System.MulticastDelegate System.Delegate

 

Delegate 委托 C#  DEMO                 DEMO 2   也可以用匿名方法 DEMO

委托 代理动态方法:  DEMO 

事件:         DEMO                 DEMO2     delegate  event

 

 

隐式类型 var

可空类型 ( 空合并运算符 )

 

 

重载

隐藏 new

重写 virtual   override  [W5]

 

阻止 实例化 ( 私有 构造函数) (静态类) [W6]

阻止 继承 类 sealed

阻止 重写 方法 sealed override public void F() // 密封并重写,就是只能用于对基类的 虚方法 进行重写

 

 

类的无参构造器 会先调用 基类的无参构造器 所以 最好写上无参构造器 良好的习惯

 

静态构造器  static A() { }

一般用于对静态数据的初始化

Class A { public  static  int  i = 90; }  // 会自动生出一个静态构造器

Class A { public  static  int  i ; }  //不会生成 静态构造器

静态构造器 只能在基类中  被调用一次

 

 

静态构造函数是不可继承的,而且不能被直接调用。
类的静态构造函数在给定应用程序域中至多执行一次。
应用程序域中第一次发生以下事件时将触发静态构造函数的执行:
1。创建类的实例。
2。引用类的任何静态成员。

 


那 么在程序中如何可以利用静态 字段和静态构造方法,通常适用于于一些不会经常变化而又频繁使用的数据,比如连接字符串,配置信息等,当满足上面所说的两点时,进行一次读取,以后就可以 方便的使用了,同时也节约了托管资源,因为对于静态成员,一个静态字段只标识一个存储位置。对一个类无论创建了多少个实例,它的静态字段永远都只有一个副 本。看如下代码

 

  enum Color

{

  Red,                  //被自动赋予0值

  Green  = 10'         //

  Blue         //被自动赋值比上面的大                 //1的值,即 11

}

  枚举类型的变量在某一时刻只能 取枚举中某一人元素的值

  泛型主要有以下几个优点:
1.性能高:定义数据类型,不需要类型转换,避免拆装箱带来的性能损失;
2.类型安全:定义允许使用的数据类型,在编译时检查类型错误,及早发现错误。

  静态的 存储效率高

  c#中,继承、虚方法、重写组合在一起才能实现多态性

也可以通过对属性、索引器、和事件使用vistual和override来产生多态性

  静态类不包含sealed或abstract,只能包含静态成员(常量和嵌套类型被看成是静态成员) 不能包含构造函数

php没有静态类,有静态方法

java也没有

 

 

 

 

 

 

 

Checked()
As运算符
Is运算符  
Sizeof
重载运算符  public static BooleanInt operator +(BooleanInt bi) 可以在实例中调用重载后的方法
重载一元运算符    重载二元运算符    重载转换运算符

 AS  IS  用法:
B b = new B();
//不用as,进行强制转换,如果类型不匹配,会引发转换异常
A a = (A) b;
//使用as,类型不匹配,不会引发异常,会返回一个null,此时 a = null
A a = b as A;


is  检查对象是否与给定类型兼容。例如,以下代码可以确定对象是否与 string 类型兼容:
is 是里氏替换原则的一种算法:子类即是父类
if(ClassA is ClassB)
   等式成立返回真 否则返回假!
如果ClassA与ClassB有继承关系并且ClassA是ClassB的子类
那么为真
否则为假!

 

GetType
Typeof

 

一个是语句一个是object的方法,typeof是语句,根据类名来得到Type对象,而getType是个方法,是对象的方法  
    
   Type   t   =   typeof(String);  
    
   String   s="";  
   Type   t   =   s.GetType()

 

 

checked        用于对整型算术运算和转换显式启用溢出检查
unchecked        用于取消整型算术运算和转换的溢出检查

 

 

 

一元加减运算符

Double.db1 = 3.14;

Double db2 = +db1;          //3.14

Double db3 = -db1;          //-3.14

 

空合并运算符

int? i = 123;

int? j = 456;

int? k = null;

int? nil = j??i;                   //j

int? nil2 = k??i;          //i

int  i1 = k??i;                   //错,需显式

int  i2 = k??2;                   //2

object o1 = new object();

object o2 = null;

object no1 = o1??"string";          //o1

object no2 = o2??o1;                   //o1

 

 

内部类 :在编译单元或命名空间内声明的类称为 顶级类 [W1] 实现在类A的内部对类B的访问

分部类 和方法:partial        

 

方法参数:

值参数

引用参数         ref

输出参数         out        

参数数组         params         string[]和string[][]可用,但string[ , ]不可用

 

 

this   this.y = y;

base访问: 适合非虚方法   用于从派生类中访问基类的成员

base.标识符

base[标识符]

int x = base[0];                 //((A)this).[0]

base.F();                         //((A)this).F();

 

base 用于构造函数声明:

class B:A

{

public B(int n ):base(0)

{

 

}

}                   //在执行B类的构造函数之前会先执行A类的构造函数A(int  n)

 

This 不能用在静态构造函数和静态函数成员中

This 用于构造函数声明:(这个构造函数会在执行正在声明的构造函数之前执行)  DEMO

 

 

显式接口成员:

DEMO

 

readonly 关键字与 const 关键字不同。
1. const 字段只能在该字段的声明中初始化。
readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。
2. const 字段是编译时常数,而 readonly 字段可用于运行时常数。
3. const 默认就是静态的,而 readonly 如果设置成静态的就必须显示声明。
4.const 对于引用类型的常数,可能的值只能是 string 和 null。
readonly可以是任何类型

Readonly可在构造 函数内多数赋值

 

 

System.Object提供了一些虚方法,所有的类都可以重写他们

Equals;                            确定两个对象是否等价          内容是否相等                  

GetHashCode                  

GetType

ToString

Finalize                           

MemberwiseClone()          创建对象的 拷贝 ,而定义的类不应该重写此方法

ReferenceEquals                   确定两对象是否 引用 同一实例

要同时重写          Equal()和GetHashCode()

 

 

 

特性:                

使用预定义(Pre-defined)特性         Obsolete DEMO [W2]                 AttributeUsage [W3] DEMO02

开发定制特性(custom attributes)         DEMO

 

 

 

程序集:

程序集是.net框架应用程序的构造块,程序集构成了部署、版本控制、重复使用、激活控制范围和安全权限的基本单元。

把s1.cs s2.cs s3.cs三个源文件编译成一个应用程序

csc /out : simulator.exe s1.cs s2.cs s3.cs

 

元数据与清单

强名称与共享

版本控制

程序集与应用程序域  DEMO

 

反射:

System.Type类为System.Reflection功能 的基础,也是访问程序集的元数据的主要方式。         DEMO

动态加载类型         DEMO

 

 

与非托管代码的互操作编程:

COM组件

ActiveX控件

 

线程操作:  多线程

DEMO                         ThreadStart

如果在创建线程时使用ParameterizedThreadStart委托,就能在启动线程时,将包含的数据的对象传递给Thread.Start(Object)方法,并从线程启动的方法中接受此数据,这是一种向线程传递数据的简单方法,如 DMEO                 ParameterizedThreadStart

使 用ParameterizedThreadStart委托来向线程传递参数时,由于可以将任何对象传递给Thread.Start(object),因此 这种方法并不是类型安全的。将数据传递给线程过程的一个更可靠的方法是将线程过程和数据字段都封装在一个辅助类中,并使用ThreadStart委托来执 行线程过程。         DMEO

由于 ParameterizedThreadStart和ThreadStart委托都没有返回值,因此不能直接从异步调用中返回数据。以下演示一个从线程中检索数据的回调方法 DEMO

匿名 方法非常适合于线程方法较简单的情形  DEMO 

 

线程优先级:         DEMO

线程的优先级可以定义为ThreadPriority枚举的值,即Highest、AboveNormal、Normal、BelowNormal和 Lowest。

阻塞和中断线程: DEMO

终止线程:                 DEMO

 

 

 

 

使用Server.Transfer("URL"); //性能比Redirect高,具有允许目标页从源页中读取控件值和公共属性值,由于调用这方法后,浏览器不会反应更改后的浏览器信息,因此它也适合以隐藏URL的形式向用户呈现页面,如果用户按后退或剧新有可能导致意外情况

 

避免不必要的服务器往返

if(!Page.IsPostBack)     //当是第一次加载时

 

 

尽早释放对象

很多类实现了IDisposable接口,都会有一个Dispose方法

 

尽量减少服务器控件的使用

 

 

 

 

 

 

 

 

 

GDI 图形图像编程:

System.Drawing.Point结构用于表示一个二维平面中的点

Point pt = new Point(100,50);

System.Drawing.Size结构用于存储一个表示大小有序整数对,通常为矩形的宽度和高度

Size size = new Size(5,8);

System.Drawing.Rectangle结构用于存储一个整数四元组。表示一个矩形的位置和大小。如果要表示浮点数的位置和大小,可以使用RectangleF.

Rectangle rect1 = new Rectangle(100,50,5,8);

Point pt = new Point(100,5);

Size size = new Size(5,8);

Rectangle rect2 = new Rectangle(pt,size);

 

 

绘图工具:

GDI+定义了绘图用的一系列工具,将它们与Graphics对象一起使用,实现绘制线条和形状,主要工具如 下:

Color结构         [W4]

Pen类                 Pen solidPen = new Pen(Color.Black,8);

Brush类                 SolidBrush qq = new SolidBrush(Color.FromArgb(200,0,0,25))

 

Paint事件

 

绘图:

直线和矩形         DEMO

椭圆和弧线         DEMO

多边形                 DEMO

样条曲线         DEMO   DEMO2

实心图形         DEMO        

LinearGradientBrush   使用线性渐变绘制区域。

 

字体和文本:

DEMO

DEMO

DMEO3

 

图像操作:         System.Drawing.Bitmap

1像素可表示的颜色数量 2 1

2像素可表示的颜色数量 2 2

24像素可表示的颜色数量 2 24

图像 显示:         DrawImage    PictureBox控件

在图像中绘制图形、图像和文本          DEMO

变换:

坐标变换         DEMO

颜色变换        

 

 

打印:         PrintDocument组件

System.Drawing.Printing

PrintDocment  PrintDialog  PrintPreviewDialog  PageSetupDialog

增加核心打印功能         DEMO

增加页面设置功能         DEMO

 

 

 

 

显式数据类型转换

C#

[W5] Convert. ToInt16 (TextBox7.Text.ToString()

f. ToString ()  //float->string [W6]

int. Parse (str)  //string->int

char[] chars = str. ToCharArray ();//string->char[]

byte[] b1 = System.Text.Encoding.Default. GetBytes (s);//sting->byte[],半个英文1个字节,汉字2 个字节。

double doubleDate = DateTime.Now.ToOADate();//按原来的double值输出,DateTime->long

DateTime theDate = DateTime.FromOADate(doubleDate);//从原来的的double值获得System.DateTime对象,long->DateTime

Java

调用类的串转换方法:X. toString ();

使用String的方法:String. volueOf (X);

转换double型的值的格式为:new Float(“32.1”). doubleValue () [W7]

静态 parseXXX 方法 [W8]

 

String.valueOf()

Integer.parseInt()

Float.parseFloat()

 

Php

使用3个具体类型的转换函数,intval()、floatval()、strval() [W9]

使用通用类型转换函数settype(mixed var,string type) [W10]

 

javascript

var string = number. toString ();   //number被转换成Number对象,再调用Number.toString()方法 [W11]

方法 toFixed ()将把数字转换成字符串,并显示小数点后指定的位数。 [W12]

parseInt ()和 parseFloat () [W13]

Sql server

CAST [W14]

CONVERT [W15]

Mysql

CAST(expr AS type),  

CONVERT(expr,type),  

CONVERT(expr   USING   transcoding_name)

 

 

日期类型

C#

不存在向char类型的隐式转换

DateTime dcsrq = new DateTime(2006,3,10);// 定义一个日期

DateTime date1 = dcsrq. AddHours (-36.3669);// 将日期减少36小时

. AddMouths (23);    // 增加23个月

Java

import java.util.Date;

Date date = new Date();   System.out.println(date.getTime());

 

Php

echo time (); //返回值1162541319,而此时的时间为Fri Nov 3 16:11:52 HKT 2006

echo date ("H/hi l d F", time ()); //18h12 Sunday 21 May

echo strftime ("%Hh%M %A %d %b" ,time());

//18h24 Sunday 21 May 前面必须添加一个百分号%

$date_time_array = getdate (time());
echo $ date_time_array [ "weekday"];

 

javascript

var Nowdate=new Date(); 

M=Number(Nowdate.getMonth())+1 

Return Nowdate.getYear()+"-"+M+"-"+Nowdate.getDate(); 

DEMO

Sql server

DEMO

Mysql

DEMO

 

C#能够使用三种类型的内存:

堆栈(stack) [W16]         托管堆(managed heap)         非托管堆(unmanaged heap)

 

C#的类型系统是统一的,因此任何类型的值都可以按对象处理

C #中的每个类型都直接或者间接地从object类派生,而object是所有类型的基类

常量也是对象,因此常量也具有它的类型所定义的方法、字段、属性 [W17]

 

引用类型 (类、接口、数组、委托)

值类型 (简单类型、枚举类型、结构类型)

 

 

 

 

类的成员:

数据成员:

字段 常量

函数成员:

方法  属性  索引器  条件  运算符  构造函数和析构函数

成员访问修饰符:

Public  protected  internal [W18]   protected internal  private

类访问修饰符:

 

 

c#基本数据类型:

字符                   char

逻辑                   bool         

整数                   byte  decimal  int  long  sbyte  short  uint  ulong  ushort 

浮点                   float  double

复杂数据类型:

数组

object

结构   struc

枚举            enum

class和interface

string   [W19]

 

字符串:

规则字符串          " "                  

逐字字符串          @" "                   // 不处理转义序列,可以跨多行

 

连接字符串和提取字符串: DEMO

访问各个字符串         DEMO

更改大小写:         s.ToUpper()         s.ToLower()

比较:                         DEMO

搜索:                         s.IndexOf("  ")

将字符串拆分为子字符串:         DEMO

复制:                         DEMO

修改字符串的值:         DEMO

对字符串进行格式化:         DEMO

StringBuilder:         DEMO

 

正则表达式: 正则表达式类

 

DEMO               Regex表示不可变(只读)正则表达式类

DEMO2        Match   [W20]

DEMO3       MatchCollection [W21]

DEMO4         GroupCollection

DEMO5       CaptureCollec

DEMO 06         Group      

DEMO0 7 Capture      

拆分字符串         拆分字符串2

查询字符串         Match Matches IsMatch

替换字符串

 

 

 

 

 

 

[/s/S]         匹配任意字符

若在正则表达式的模式或模式的一部分两侧加上括号,就会导致表达式的一部分被存储到临时缓存区。可以通过?: ?= 或 ?!来重写捕获

*         {0,}                

+         {1,}                

?         {0,1}        

/d         数字字符匹配

/D

/s         任意空白字符

/S

/t         制表符

/w         任何字类字符         [a-zA-Z0-9]

/W         任何非单词字符         [^a-zA-Z0-9]

 

[^#  ]*       匹配不包括#或空格字符的任何字符序列

 

 

bool -> System.Boolean (布尔型,其值为 true 或者 false)
char -> System.Char (字符型,占有两个字节,表示 1 个 Unicode 字符)

 

高级数据类型:

可空类型         T类型         (可取空(null)值)

Int ? X;

Int ? Y = null;

         Int ? X = 123; //123被  转换为可空类型int?

与int ? X = new int ? (123); //123被包装到可空类型int?

两个是等价的操作

转义字符:

/0                   null

/a                   警告符号

/b                   退格符         

/f                   换页符

/n                   换行符

/r                   回车符

/t                   水平制表符

/"                  

/'                  

//                  

/u000-uFFFF                   以十六进制指定的16位Unicode字符

 

变量的默认值:

定义了变量必须赋一个初值才能使用。

如果不想定义有意义的值,就String  var_a =  null ;

 

常量:          const

 

不存在到char类型的隐式转换

 

装箱和取消装箱: [W1] 拆箱

将值类型转换为引用类型的过程          装箱

将引用类型转换为值类型                            取消装箱

 

二维、多维数组:

int[ , , ] intArray;

int[ , ] intArray = new int[4,5];

intArray = new int[ , ]{{1,2},{3,4},{5,6}};

可以这样引用二维数组中的一个元素:int   = intArray[1][2];

 

Int[] arr = {1,2.3};

C# 不支持动态数组

 

声明交错数组:

int[ ][ ] = intArray = new int[4][];

这个跟 java一样

 

 

如果需要在执行一段代码后自动释放这段代码所占用的资源          用using语句

 

 

 

引用机制:

Valuemethod(int  i)

Valuemethod( ref  int  i)  //引用参数  可以改变 han shu外的变量

Valuemethod( out  int  i)          //输出 参数  ref 差不多 参数在 han shu体内必须先进行初始化

 

一个字符保存成 System.char 结构

字符总是表示为 16 位的ASC‖符

ASC‖美国标准标准信息码  

int(c)          //得到 c 的ASC‖码

'/x65'  是十六进制的   ( char) 64  用的是十进制

Convent.Tochar(64)          也用十进制 但效率不如上面的

 

 

System . Text . StringBuilder         处理大量字符

 

 

 

析构   一个类只能有一个  自动调用的  不能被重载等  永远是私有的 ~ A (){         }

托管堆         

zhan          会自动释放内存  局部变量,

 

垃圾回收机制:          第0代的对象 占256K  第1代占2M 第2代占10M

带有析 han shu 的类会进行两次垃圾回收才能 清除 一般情况最好不要析构

 

促发析 han shu条件:

 

Dispose() 方法 阻止 finalize() 方法的调用   DEMO

 

 

 

属性:   属性访问器

Private string m_name;

public string Name

          {

                    get

                              {

                                        return Name ;

                              }

                    set {

                              if ( values == "ÄÐ" || values == "Å®" )

                              {

                                        sex = values ;

                                       

                              }

                              else

                              {

                                        Console . WriteLine ( "ÐÔ±ðÖ»ÄÜΪ" ÄÐ "»ò" Å® "" );

                             

                              }          

                    }

          }

属性的四个种类:

可读可写

可读

可写

S tatic 属性

 

 

 

静态方法不能标记为 override、virtual 或 abstract,即静态方法都必须是具体的

 

子类继承抽象父类后,可以使用override关键字覆盖父类中的抽象方法,并做具体的实现。也可以不实现抽象方法,留给后代实现,这时子类仍旧是一个抽象类,必须声明为abstract

 

继承的抽象方法不可以被隐藏

 

静态方法可以被隐藏或重载

 

sealed  相当于 java final

密封类不能用作基类。因此,它也不能是抽象类。密封类主要用于防止派生。

在对基类的虚成员进行重写的派生类上的类成员、方法、字段、属性或事件可以将该成员声明为密封成员。

 

如果没有充分理由,应避免显式实现接口成员。

如果成员只应通过接口调用,则考虑显式实现接口成员。

 

 

 

命名空间:

namaspace N1.N2{}

相当于 namaspace N1{  namaspace N2{  }  }

 

 

递归:

直接递归(在方法体中调用方法本身)

间接递归(A调用B,B中调用了A)

 

B b = new B();                 //子类对象

A a = b;                 //a 的编译时类型为A 运行时类型是B

 

.net framework 事件设计规则:

声明 delegate 时,使用 void 类型当作返回值, EventName 事件的事件委托是 EventName EventHandler, 事件接受两个参数,一律命名为 sender e;  DEMO

 

//防止可能存在的 线程同步 问题

 

 

 

 

 

引发异常   throw new Exception ( "width 的值不能为负 " );

处理异常         try catch finally

更改异常蛮量 并重新引发异常

 

注意:当一个break、continue、goto语句出现在finally块中时,此语句的目标必须在同  一finally块内,而不能将控制权转移到finally块外部。return语句不能用于finally语句中         

 

公共异常类:

引发溢出异常   OverflowException

内存枯竭时 OutOfMemoryException

当堆栈空间耗尽时 StackOverflowException   在递归程序中最容易导致堆栈溢出

引用空对象时         NullReferenceException

当数组越界操作时 IndexOutOfRangeException

当出现不当显式转换时         InvalidCastException

 

自定义异常信息

 

 

异常处理:

e.ExceptionHandled = true;         //这个属性默认返回false。设为true就告诉.net 已成功地处理了异常,应用程序可以安全地继续执行

 

 

 

 

 

 

Web 窗体编程             System.Web.UI 命名空间

Windows 窗体编程:             System.Windows.Forms 命名空间

                    //创建my2实例

           my2 qq = new my2 ();

           //以模式方法显示FirstForm对象

           qq.ShowDialog();    // qq.Show();

 

this.DialogResult = DialogResult .OK;

//窗口模式关闭         

 

Window 类实例化时,默认情况下它是不可见的。ShowDialog 显示窗口,禁用应用程序中的所有其他窗口,并且仅在窗口关闭后才返回。这种类型的窗口称为“模式”窗口。

 

            //显示消息框

           MessageBox .Show( "只要关闭这个东西 应用程序才能继续运行" );

 

                    //显示一个消息框

           DialogResult dr = MessageBox .Show(

            "可以选择yes、no、或者cancel.你想进行何种操作?" ,

            "消息框" , MessageBoxButtons .YesNoCancel, MessageBoxIcon .Question

            );

           if (dr == DialogResult .Yes) this .Text = "你选择了yes" ;

           else if (dr == DialogResult .No) this .Text = "你选择了no" ;

  else if (dr == DialogResult .Cancel) this .Text = "你选择了cancel" ;

 

 

Anchor          控制控件随容器的大小变化的变化方式

Dock                   可以定义在调整控件的父控件大小时如何自动调整控件的大小

 

textBox          默认情况下最多可在一个文本框中输入2048个字符

Muttiline 属性设为true,则最多可输入32Kb的文本

 

selectionStart          默认字符插入点

selectionLength

 

ProgressDow          进度条

 

 

this. Cursor . = Cursors .WaitCurosr;                   //设置鼠标指针样式

 

 

 

使用菜单:

文件(&F)          "(&F)"表示菜单对应的快捷键 [W2]

弹出菜单                   ContextMenuStrip控件          DEMO (文字编辑器设计 C#版)

OpenFileDialog控件选择文件          DEMO

ColorDialog控件设置颜色                   DEMO

FontSialog控件设置字体                   DEMO

PrintDialog控件打印对话框          DEMO

 

 

 

 

 

.net三个基本的.net框架类:

Console          convert        Math

 

Console.WriteLine("{0,3}",i);          //右对齐,宽度为3

Console.WriteLine("{0,-3}",i);          //左对齐,宽度为3

Console.WriteLine("{0:D10}",i);          //D为格式控制符,不区分大小写

 

Math.Sqrt()          平方根

Math.Pow(   ,5.0)  5次幂

Math.Log( )          自然对数

 

 

 

 

. NET特别 函数:

system.Threading.Thrend.sleep(1000);                 // 休息一秒钟

Server 对象:         

主要是处理页面请求编码转换虚拟路径与物理路径转换等方法

Response.write(Server.MapPath("."));          // 当前服务器的物理路径

防止脚本入侵:

Response.Write(Server.HtmlEncode("<script> alert(/" 脚本入侵 /")</script>"));          // 进行编码转换

Response.Write("<script> alert(/" 脚本入侵 /")</script>");                            //没有 进行编码转换

 

Char key = (char)Console.Read();                   //读取一个字符

String str = console. ReadLine ();                   //读取一行

s = Console . ReadLine (). Trim ();

 

 

return String . Format ( "Red = {0}" ,( int ) c );

 

DateTime time1 = new DateTime . Now ;

 

  Application .StartupPath     程序所在的目录

 

Server.MapPath("books.xml")          得到此文件的完整文件名

 

 

File.Exists(path)                   // This path is a file

Directory.Exists(path)                   //This path is a directory.

Directory.CreateDirectory( ) ;

 

Dispose()

Close()

 

Path.GetExtention(name);          //得到文件扩展名

Path.GetFullNameWithoutExtension(path);          //从路径中得到文件名(除去扩展名)

 

Calendar1.SelectedDate.ToShortDateString();

 

Label1.Text = Server.HtmlEncode(TextBox1.Text);  //防止脚本入侵s

 

 

var Myrow = (HtmlTableRow)this. FindControl (Text1.Value);   搜索指定的服务器控件

PreviousPage. FindControl()

 

if(!Page. IsPostBack )                 第一次打开时,非刷新时

 

  int i=123;                 //定义一个值类型

object         o = i;                 //装箱

int  j = (int)o ;                 //取消装箱

  与Vb一样





文件操作                  

file          DEMO

Read ...          DEMO

fileInfo          DEMO          //如果想多次重用一个对象,可选用 fileInfo

 

Directory 类          Directory . Exists ( target )         DEMO

DirectoryInfo         DEMO  

Path类         DEMO

Environment类         DEMO

FileStream类         [W1]         DEMO                 DEMO                 DEMO

 

 

创建FileStream对象的方法有许多种:
① 调用FileStream类的构造函数从文件名直接创建。可以指定不同的FileMode/FileAccess/和FileShare类型。
② 利用File类或者FileInfo类的Open方法创建。可以指定不同的FileMode/FileAccess/和FileShare类型。
③ 利用File类或者FileInfo类的Create方法创建。用于创建新文件,可读可写,相当于使用了FileMode.Create 和 FileAccess.ReadWrite
④ 利用File类或者FileInfo类的OpenRead方法创建。用于打开已经有的文件,只读,相当于使用了FileMode.Open和 FileAccess.Read
⑤ 利用File类或者FileInfo类的OpenWrite方法创建。用于打开已经存在的文件,只写,相当于使用了FileMode.Open和FileAccess.Write

 

 

 

 

安装项编辑器:

视图  编辑器

自定义操作

 

 

 

在ASP.Net中 利用CSS实现多界面的方法.

通过使页面动态加载不同CSS实现多界面: DEMO

 

 

 

 

 

 

 

< srcipt >          <srcipt >                   代码声明块 [W1]

< %                   % >                            代码呈现块

 

 

 

如果非要使用关键字作为标识符,就加上@前缀

String @base

String userName;          相当于String userN/u0061me;

 

 

 

 

服务器端包含: (Server Side Include  SSI)

#include

<!-- #include virtual = "/myapp/  " -->          虚拟目录

<!-- #include file="  "  -->                   物理目录

<script>

<script language="c#" runat="server"  src ="   "> [W2]

</script>

 

 

服务器端网页缓存的处理:

<%

// 确保打开缓存,此语句必须位于 html 标签之前

Response.BufferOutput  = true; [W3] // <%@Page  Buffer="true"%> 相同的功能

%>

<htnl>

</htnl>

 

 

 

下面的代码用来设置防止浏览器缓存网页:

<meta http-equiv="Pragma"  content="no-cache" />

<meta http-equiv="Cache-Control"  content="no-cache" />

<meta http-equiv="Expires"  content="0" />

(Response.AddHeader() 也可以,只是为了兼容asp,最好不要用了 )

Response.AppendHeader("Cache-Control","no-cache");                   //http 1.1

Response.AppendHeader("Pargma","no-cache");                   //http 1.0

 

创建基本身份验证站点

IIS 管理控制台建立了 SSL 安全机制后,只有 SSL 允许客户才能与SSL允许的Web站点进行通信,并且使用URI资源定位时,输入 https ://,而不是 http ://。

创建证书请求文件         

创建证书          (安装和使用证书服务  申请证书  颁发证书  )等 [W4]

 

 

 

 

.net 3.5 新增功能

匿名类型          DEMO

扩展方法          DEMO

Lambda表达式          DEMO

 

 

 

创建模板                   模板右键 添加内容页

WEB用户控件 与 模板 区别 [W5]

 

 

在Visual Studio 2008 简体中文版环境下安装Silverlight3以及Microsoft Expression Blend 3

注意事项

 

 

 

&是位运算符

&& 是逻辑运算符

 

.net 本身已有的命名空间 System.IO

导入命名空间 <%Import  Namespace="System.IO"  %>

也可以导入类 <%Import  Namespace="System.IO.DirectoryInfo"  %>

 

Using 还可以自定义别名

Using DI = System.IO.DirectoryInfo;

Public class Myclass{

DI dir = new Di("  ");

}

 

脚本侵入

通过对字符串应用 HTML 编码在 Web 应用程序中防止脚本侵入

Label1.Text = Server.HtmlEncode(TextBox1.Text);

 

ASP.NET 包括了 Web 应用程序根目录运算符 (~),当您在服务器控件中指定路径时可以使用该运算符。ASP.NET 会将 ~ 运算符解析为当前应用程序的根目录。

 

 

  函数必须在代码声明块中声明,全局变量必须在代码吾现块中定义,也可以在代码呈现块中定义,但代码呈现块中定义的变量只有此网页上的其他代码呈现块可以访问它们,函数不能访问他们

  不要在这个标签放置其他编程逻辑,要使用另外一组<script>

通常将包含文件分为多个小文件

  当被设置 true 时,除非当前网页的所有 asp.net 脚本处理完毕或调用了 Response. Flush ()或 Response. End ()方法,否则服务器不将响应发送给客户端

 

当被设置 true 时,则调用 Response. End ()方法 将立即输出缓存内容.

如果不希望将输出返回客户端,应首先调用 Response. clear ()方法

然后调用 Response. End ()方法

 

Response. Flush ()方法立即发送缓存区中的输出

  证书服务只有在 server系统有

  在ASP.NET中动态加载内容(用户控件和模板)
要点:
1. 使用Page.ParseControl
2. 使用base.LoadControl
第一部分:加载模板
下 面是一个模板“<table width=100%><tr><td width=100% colspan=2 runat=server id=ContainerTop></td></tr><tr><td width=30% runat=server id=ContainerLeft></td><td width=70% runat=server id=ContainerRight></td></tr></table>”如何把它添加到页面中那。 

首先,你要有一个页面(.aspx),在页面中有一个一行一列的表格,并且是服务器端的TD我们就把它命名为TemplateContainer。好了现在到代码编辑窗口,在page_load中加载模板。
第二步,使用Page.ParseControl将上边的HTML代码分析为web窗体页或用户控件的System.web.ui.control如下代码:
protected System.Web.UI.HtmlControls.HtmlTableCell TemplateContainer;
System.Web.UI.Control objContainer;
private void Page_Load(object sender, System.EventArgs e)
{
objContainer =Page.ParseControl(“上边的HTML代码);
this.TempContainer.Controls.Add(objContainer);
}
模板已经加载完毕。
第二部分:加载用户控件
首先,你要确定用户控件要加载到页面的那个位置。现在你会发现第一部分的那段HTML代码,其中每一个TD都是一个容器你可以通过Page.FindControl找到你要加载控件的容器。如下代码:
System.Web.UI.Control objControl=Page.FindControl("ContainerTop");
第二,找到容器后,就可以将你的用户控件加载到页面中了。如下代码:
objControl.Controls.Add(base.LoadControl(“用户控件虚拟路径”));
现在运行程序看看,是不是已经加载了用户控件。





 

 

 

文本 文件         StreamReader  StreamWriter  

读取文本 说明文件

写入文本 说明文件

二进制 文件         BinaryReader BinaryWriter

XML 文件         XmlWriter         XmlReader

读取XML文件并显示每个节点 DEMO

利用XmlWriter来编写XML文件 DEMO

 

 

 

 

基于流的文件操作

BinaryReader和BinaryWriter从streams读取或向Stream写入编码的字符和基元数据类型。

TextReader是StreamReader和StringReader的抽象基类。抽象类Stream用于实现字节输入和输出,而TextWriter用于实现Unicode字符输出。

TextWriter是StreamWriter和StringWriter的抽象基类。抽象类Stream用于实现字节输入和输出,而TextWriter用于实现Unicode字符输出。

StreamReader通过使用Encoding 进行字符和字节的转换,从Stream中读取字符.。

BufferStream是向另一个Stream(例如NetworkStream)添加缓冲的Stream。(FileStream内部也具有缓冲,MemoryStream不需要缓冲。)

MemoryStream是一个非缓冲的流,可能在内存中,直接访问它的封闭数据。此流没有后备存储,可用做临时缓冲区。

 

 

  创建FileStream对象的方法有许多种:

①  调用FileStream类的构造函数从文件名直接创建。可以指定不同的FileMode/FileAccess/和FileShare类型。

②  利用File类或者FileInfo类的Open方法创建。可以指定不同的FileMode/FileAccess/和FileShare类型。

③  利用File类或者FileInfo类的Create方法创建。用于创建新文件,可读可写,相当于使用了FileMode.Create 和 FileAccess.ReadWrite

④  利用File类或者FileInfo类的OpenRead方法创建。用于打开已经有的文件,只读,相当于使用了FileMode.Open和 FileAccess.Read

⑤  利用File类或者FileInfo类的OpenWrite方法创建。用于打开已经存在的文件,只写,相当于使用了FileMode.Open和FileAccess.Write

 

 

 


IHttpHandler接口 MyHalder.cs        web.config
IHttpModule接口  HttpModule 进行系统的权限验证:

 

 

 

 

 

你可能感兴趣的:(.net,String,正则表达式,object,C#,VB.NET)