文章分类 -  C#

is/as操作符
摘要:浅谈了类型转换的几个普遍关注的方面,该将主要精力放在is、as操作符的恩怨情仇上了。类型转换将是个较大的话题,留于适当的时机讨论。is/as操作符,是C#中用于类型转换的,提供了对类型兼容性的判断,从而使得类型转换控制在安全的范畴,提供了灵活的类型转换控制。is的规则如下:检查对象类型的兼容性,并返回结果,true或者false;不会抛出异常;如果对象为null,则返回值永远为false。其典型用法为:1objecto=newobject();23classA45{67}89if(oisA)//执行第一次类型兼容检查1011{1213Aa=(A)o;//执行第二次类型兼容检查1415}1617 阅读全文

posted @ 2011-04-05 13:48 xingya 阅读(90) 评论(0) 推荐(0)

复制数组
摘要:因为数组是引用类型,所以将一个数组变量赋予另一个数组变量,就会得到两个指向同一数组的变量。而复制数组,会使数组实现ICloneable 接口。这个接口定义的Clone()方法会创建数组的浅副本。如果数组的元素是值类型,就会复制所有的值,int intArray1 = {1, 2};int intArray2 = (int[])intArray1.Clone();如果数组包含引用类型,则不复制元素,而只复制引用。 显示了变量beatles 和beatlesClone,其中beatlesClone 是通过在beatles 上调用Clone()方法来创建的。beatles 和beatlesClone 阅读全文

posted @ 2011-04-05 13:32 xingya 阅读(117) 评论(0) 推荐(0)

创建数组
摘要:Array 类是一个抽象类,所以不能使用构造函数来创建数组。但除了可以使用C#语法创建数组实例之外,还可以使用静态方法CreateInstance()创建数组。如果事先不知道元素的类型,就可以使用该静态方法,因为类型可以作为Type 对象传送给CreateInstance()方法。下面的例子说明了如何创建类型为int、大小为5 的数组。CreateInstance()方法的第一个参数应是元素的类型,第二个参数定义数组的大小。可以用SetValue()方法设置值,用GetValue()方法读取值:Array intArray1 = Array.CreateInstance(typeof(int) 阅读全文

posted @ 2011-04-05 13:15 xingya 阅读(471) 评论(0) 推荐(0)

使用引用类型
摘要:不但能声明预定义类型的数组,还可以声明定制类型的数组。下面用Person 类来说明,这个类有两个构造函数、自动实现的属性Firstname 和Lastname、以及ToString()方法的一个重写:public class Person{public Person()}{public Person(string firstName, string lastName){this. firstname = firstName;this.lastname = lastName;}public string Firstname{ get; set; }public string Lastname{ 阅读全文

posted @ 2011-04-05 13:00 xingya 阅读(101) 评论(0) 推荐(0)

值和对象引用
摘要:class Class1 { private string str = "Class1.str"; private int i = 0; static void StringConvert(string str) { str = "string being converted."; } static void StringConvert(Class1 c) { c.str = "string being converted."; } static void Add(int i) { i++; } static void AddWith 阅读全文

posted @ 2011-04-04 17:43 xingya 阅读(186) 评论(0) 推荐(0)

C#, ASP.NET笔试题(3)
摘要:120. 请叙述属性与索引器的区别属性:(1) 通过名称标识(3) 通过简单名称或成员访问来访问(3) 可以为静态成员或实例成员(4) 属性的get访问器没有参数(5) 属性的set访问器包含隐式value参数索引器:(1) 通过签名标识(2) 通过元素访问来访问(3) 必须为实例成员(4) 索引器的get访问器具有与索引器相同的形参表(5) 除了value参数外,索引器的set访问器还具有与索引器相同的形参表121. 请叙述const与readonly的区别。答:每一个class至多只可以定义一个static构造函数,并且不允许增加访问级别关键字,参数列必须为空。为了不违背编码规则,通常把s 阅读全文

posted @ 2011-04-01 07:48 xingya 阅读(356) 评论(0) 推荐(0)

C#, ASP.NET笔试题(2)
摘要:61.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复int[]intArr=newint[100];ArrayListmyList=newArrayList();Randomrnd=newRandom();while(myList.Count<100){intnum=rnd.Next(1,101);if(!myList.Contains(num))myList.Add(num);}for(inti=0;i<100;i++)intArr[i]=(int)myList[i];62.请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。答:se 阅读全文

posted @ 2011-04-01 07:47 xingya 阅读(147) 评论(0) 推荐(0)

C#, ASP.NET笔试题(1)
摘要:1.简述 private、 protected、 public、 internal 修饰符的访问权限答:private : 私有成员, 在类的内部才可以访问。protected : 保护成员,该类内部和继承类中可以访问。public : 公共成员,完全公开,没有访问限制。internal: 在同一命名空间内可以访问。2.列举ASP.NET页面之间传递值的几种方式答:(1) 使用QueryString, 如....?id=1; response. Redirect()....(2) 使用Session变量(3) 使用Server.Transfer3.一列数的规则如下: 1、1、2、3、5、8、1 阅读全文

posted @ 2011-04-01 07:45 xingya 阅读(176) 评论(0) 推荐(0)

ASP.NET跨页面传值技巧总结
摘要:1. 使用QueryString变量QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子:a.aspx的C#代码private void Button1_Click(object sender, System.EventArgs e){ string s_url; s_url = "b.aspx?name=" + Label1.Text; Response.Redirect(s_url);}b.aspx中 阅读全文

posted @ 2011-03-14 21:04 xingya 阅读(72) 评论(0) 推荐(0)

C#多线程学习多线程的自动管理(定时器)
摘要:Timer类:设置一个定时器,定时执行用户指定的函数。定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数。初始化一个Timer对象:Timer timer = new Timer(timerDelegate, s,1000, 1000);// 第一个参数:指定了TimerCallback 委托,表示要执行的方法;// 第二个参数:一个包含回调方法要使用的信息的对象,或者为空引用;// 第三个参数:延迟时间——计时开始的时刻距现在的时间,单位是毫秒,指定为“0”表示立即启动计时器;// 第四个参数:定时器的时间间隔——计时开始以后,每隔这么长的一段时间,TimerCallback所代表 阅读全文

posted @ 2011-03-14 20:58 xingya 阅读(246) 评论(0) 推荐(0)

C#多线程学习多线程的自动管理(线程池)
摘要:在多线程的程序中,经常会出现两种情况:一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应这一般使用ThreadPool(线程池)来解决;另一种情况:线程平时都处于休眠状态,只是周期性地被唤醒这一般使用Timer(定时器)来解决;ThreadPool类提供一个由系统维护的线程池(可以看作一个线程的容器),该容器需要 Windows 2000 以上系统支持,因为其中某些方法调用了只有高版本的Windows才有的API函数。将线程安放在线程池里,需使用ThreadPool.QueueUserWorkItem()方法,该方法的原型如下://将一个线程放进线程池 阅读全文

posted @ 2011-03-14 20:57 xingya 阅读(80) 评论(0) 推荐(0)