循环中止
break :立即中止整个循环
continue:立即中止当前循环,进行下次循环
例子:
int i = 0;
while (i < 5)
{
i++;
if (i == 3)
{
break;
}
Console.WriteLine("i={0}",i);
}
Console.WriteLine("while 退出了");
Console.ReadKey();
程序运行输出的结果是:1,2 break换成continue的输出的结果是:1,2,4,5
类型转换
类型转换分为隐式类型转换和显示类型转换(cast),隐式类型转换是一定能成功的,比如说把一个黄种人转换成人的类型是一定能成功的,而显示类型转换是转换不一定能成功,比如说人转换成黄种人就不一定成功,转换的过程中也存在风险,谁转换谁负责
再比如显示类型转换,要把一个int类型的数据转换成byte类型的数据,就一定能成功,因为int类型的范围比byte大,这时就要进行显示类型转换,转换的例子语法如下:
int i;
byte b;
b=(byte)i;
int i=10;
string b=(string)i;
这种转换是不能进行的,因为只有在内存上存在交集才能cast;整形和字符串型不存在交集。
可以用Convert方法进行转换:
int i=10;
string b=Convert.ToString(i);
玫举
约定了数据可以取的值,避免了数据非法的问题
玫举例子:
enum sex { 男, 女 };
static void Main(string[] args)
{
sex g=sex.男;
Console.WriteLine("{0}",g);
Console.ReadKey();
}
时间数据类型例子:
DateTime dt = DateTime.Now;
DateTime dat = Convert.ToDateTime("6/7/2009");
Response.Write(dat.Year.GetType()+"<br>");//时间是由整形数据构成的
Response.Write(dt.Year + "<br>");
Response.Write(dt.Month + "<br>");
Response.Write(dt.Date + "<br>");
Response.Write(dt + "<br>");
Response.Write(dt.ToShortDateString()+ "<br>");
对象
1.对象可以有多个构造方法,可以带参数,也可以不带参数,主要是看你怎么new,一个对象也可以有很多个名称相同的方法,只是多方法做的事情不一样,或是带的参数不一样,这种有两个或多个方法就叫对象的重载。operator用于运算符的重载。
.
2.用get和set方法称为存储器方法,可以对私有成员进行提取值和赋值,这个方法让用户可以对私有变量进行操作。
Application对象,对应Global.asax文件,一个网站只能有一个这样的文件,对Application对象进行操作时先要锁定,操作完再解锁。
Application.Lock();
Application["a"]= (int)Application["a"]+1;
Application.UnLock();
Response.Write(Application["a"]);
3.,属性是对私有字段的封装,供类在外部访问
委托和事件
委托定义就是在一个函数定义中间加入一个delegate的关键词,例如:public delegate returnType delegateName(paramtype param1,…);
声明一个事件并指定委托类型,如: public event TitleChengHendler delegateName;
事件和委托一般是用在一起的,当事件发生时就委托delegateName类,delegateName就去调用 paramtype等函数。
静态成员:静态成员可以实现对象实例之间的成员工享
索引指示器,他让我们可以象使用数组一样对对象使用下标,简单说他让我们可以通过索引方式访问类的一组数据.在页面你可以直接通过下标获取数组元素的值.
镶套类型 是一个类完整的包含了在另一个类
public partial class lei_baohan : System.Web.UI.Page
{
public class comp //定义一个计算机大类
{
public class cod //定义一个编程的类,被包含在comp类中
{
private string use; //定义一个私有变量
public cod(string aa) //为被包含类创建一个构造函数
{
use = aa;
}
public string Use //为被包含类创建一个属性
{
get
{ return use; }
set
{ use = value; }
}
public string codf(string aa) //为被包含类创建一个方法
{
return "<br>我现在用的是"+aa ;
}
public static string aa(int bb) //为被包含类创建一个静态方法
{
return "<br>一共有" + bb + "种语言";
}
}
public comp() //为包含类创建一个构造函数
{
}
包含类型 就是在另一个对象中做数据成员的对象类型
public class aaa //创建一个类,下面类中我们会创建一个他这个类型的私有变量
{
private string val1; //创建一个私有变量
public aaa(string str) //定制一个构造函数
{
val1 = str; //为它赋上传进来的值
}
public string Val1 //定制一个属性
{
get
{ return val1; }
set
{ val1 = value; }
}
}
public class bbb //这个类将会使用上面类创建一个私有变量
{
private aaa bval1; //看见这行没,注意哦
public bbb() //定制一个空的构造函数
{
}
public aaa Bval1 //属性,大家看到这里,外露的是他自己的私有变量,确切说是上面我们申明的 aaa 类型的私有变量
{
get
{ return bval1; }
set
{ bval1 = value; }
}
}
protected void Page_Load(object sender, EventArgs e)
{
bbb bb = new bbb(); //我们利用第二个类创建了一个实例
bb.Bval1 = new aaa("dsdsdcs"); //注意这里就有点怪了,其实也不怪,呵呵,
Response.Write(bb.Bval1.Val1); //通过bb.Bval1.Val1 的方式访问被包含类的属性
}
}
protected void Page_Load(object sender, EventArgs e)
{
comp.cod user = new comp.cod(".net/c#"); //创建一个包含类的实例
Response.Write(user.Use); //访问被包含类中的属性
Response.Write(user.codf(".Net/c#")); //使用被包含类的方法
Response.Write(comp.cod.aa(30)); //使用被包含类的静态方法
}
}
嵌套类型可访问被包含类型的私有成员和受保护的成员(包括所有继承的私有成员或受保护的成员)。