概念性复习
在.net中所有可以序列化的类被标记为[Serializable]
asp.net页面之间传递值的方法有:1使用QueryString ,2使用Server.Transfer 3使用SeeSion变量 4Cookie传值 5.Application传值
反射:动态获取程序集信息
GAC全局程序集缓存
datareader是只能向前的制度游标,dataset是内存中的表
软件开发阶段:需求分析,架构设计,代码编写 ,QA,部署
using 引入名称空间或者使用非托管资源
C#中的委托是什么?事件是不是一种委托?事件和委托的关系。
委托可以把一个方法作为参数代入另一个方法。
委托可以理解为指向一个函数的指针。
委托和事件没有可比性,因为委托是类型,事件是对象,下面说的是委托的对象(用委托方式实现的事件)和(标准的event方式实现)事件的区别。事件的内部是用委托实现的。因为对于事件来讲,外部只能“注册自己+=、注销自己-=”,外界不可以注销其他的注册者,外界不可以主动触发事件,因此如果用Delegate就没法进行上面的控制,因此诞生了事件这种语法。事件是用来阉割委托实例的,类比用一个自定义类阉割List。事件只能add、remove自己,不能赋值。事件只能+=、-=,不能=
事件内部就是一个private的委托和add、remove两个方法。
基础性练习:
/////////////////////////////////////////////
//public virtual void f()
//{
// Console.WriteLine("program.f");
// }
//abstract class g : Program
//{
// /// <summary>
// /// /// abstract override 不可以一起修饰?
// /// </summary>
// public abstract override void f();
// }
////////////////////////////////////////////
////////////////////////////////
//去除字符串尾部空格,中间可以有空壳,但连续的空格不得超过一个
//string inputStr = Console.ReadLine();
//inputStr = Regex.Replace(inputStr.Trim(),"*"," ");
//Console.WriteLine("{0}",inputStr);
/////////////////////////////////////
////一百个1-100的随机数,不重复
//int[] intArr = new int[100];
//ArryList myList = new ArryList();
//Random rnd = new Random();
//while (myList.Count<100)
//{
// int num = rnd.Next(0, 100) + 1;
// if (!myList.Contains(num))
// {
// myList.Add(num);
// }
// for (int i = 0; i < 100; i++)
// {
// intArr[i] = (int)(myList[i]);
// }
//}
//一千个a-z之间的随机数
//for (int i = 0; i < 1000; i++)
//{
// char value = (char)(rnd.Next('a', 'z')+1);
// Console.Write("{0} ",value);
//}
object.referenceEquals 跟object.Equals的不同
//int a = 5;
//int b = 5;
//if (object.ReferenceEquals(a,b)) //对象无法被重写,
//{
// Console.WriteLine("比较得到对象的引用相同");
//}
//else
//{
// Console.WriteLine("比较引用得到对象的引用不相同");
//}
//if (object.Equals(a,b)) //允许对象重写
//{
// Console.WriteLine("比较得到两个对象相同");
//}
//else
//{
// Console.WriteLine("比较得到两个对象不相同");
//}
public static int Count { get; set; } //不会出现死锁,如果int 改为Object则会出现死锁
// public void test(int i)
// {
// lock (this)
// {
// if (i>10)
// {
// i--;
// test(i);
// }
// }
// }
///<summary>
///一列数的规则如:1,1,2,3,5,8,13,21,34,......求第三位是多少?用递归算法实现
///</summary>
///<param name="i"></param>
///<returns></returns>
//public static int Fool(int i )
//{
// if (i<=0)
// {
// return 0;
// }
// else if (i>0 && i<=2)
// {
// return 1;
// }
// else
// {
// return Fool(i - 1) + Fool(i - 2);
// }
//}
//class A //////???????????????
//{
// public static int X;
// static A()
// {
// X = B.Y + 1;
// }
//}
//class B
//{
// public static int Y = A.X + 1;
// static B() { }
// static void Main()
// {
// Console.WriteLine("X={0},Y={1}", A.X, B.Y);
// Console.ReadKey();
// }
//}
浙公网安备 33010602011771号