上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 18 下一页
摘要: 委托的基本使用: class Program { public delegate void CaculateDel(int x, int y); //用delegate 关键字 定义委托类型CacaluteDel public static void Add(int x, int y) //两个方法 { Console.WriteLine(x + y); } public static void Substract(int x, int y) { Consol... 阅读全文
posted @ 2013-10-03 16:18 瓜王 阅读(195) 评论(0) 推荐(0) 编辑
摘要: string 类型是c#中使用最频繁的类型,因此CLR用专门的方法来处理、优化string,使得string虽然你是引用类型,但在表现上被.NET优化为值类型。先看string的定义是: public sealed class String : IComparable, ICloneable, IConvertible, IComparable, IEnumerable, IEnumerable, IEquatable从这里我们可以得知:string的本质是字符集合,因此,linq to object 的操作能作用在string上。string是sealed,该特性是为字符串不变性(恒等性,. 阅读全文
posted @ 2013-09-26 17:43 瓜王 阅读(1738) 评论(0) 推荐(0) 编辑
摘要: 通过反编译发现,static的本质是abstract sealed。因此,无法继承System.Math类,因为它是static的。 阅读全文
posted @ 2013-09-13 17:51 瓜王 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 看了对Anders Hejlsberg的采访,1)C#中函数默认是非virtual的设计因为:在java中,一个方法默认是虚拟化的,只有对一个方法必须声明final关键字,这样这个方法才是非虚的,无法被子类重写。而C#中,方法默认是非虚的,只有加上virtual关键字,子类才能被重写。据Hejlsberg说,这样设计的好处是,第一,他观察到很多java程序员都忘写final;第二,虚化性能相对于非虚化要差一点。2)virtual这个关键字其实含义是为了版本控制。用他自己的话说,"版本控制最终会是语言设计的一大要素。它体现于你如何覆盖C#虚拟方法。同样因为版本控制,我们C#里重载的解决 阅读全文
posted @ 2013-09-12 11:55 瓜王 阅读(230) 评论(0) 推荐(0) 编辑
摘要: View function postSimpleData() { $.ajax({ type: "POST", url: "/Service/SimpleData", contentType: "application/json", //必须有 dataType: "json", //表示返回值类型,不必须 data: JSON.stringify({ 'foo': 'foovalue', 'bar': 'barvalue' }), //相当于 //d 阅读全文
posted @ 2013-09-11 15:00 瓜王 阅读(76110) 评论(3) 推荐(8) 编辑
摘要: 1)根据你必须知道的.NET一书,#define DEBUG class Program { static void Main(string[] args) {#if DEBUG Console.WriteLine("debug mode");#else Console.WriteLine("release mode");#endif } }代码很简单,但其实这段代码是有问题的。原因出在,其实vs中内置了DEBUG,所以无需在开头再定义DEBUG。还是stackoverflow这里讲得比较正确。把... 阅读全文
posted @ 2013-09-11 11:45 瓜王 阅读(618) 评论(0) 推荐(0) 编辑
摘要: class MyAge { public int Age { get; set; } public static implicit operator MyAge(int age) { return new MyAge() { Age = age }; } public static explicit operator int(MyAge myAge) { return myAge.Age; } } MyAge myAge=new MyAge... 阅读全文
posted @ 2013-09-09 15:43 瓜王 阅读(186) 评论(0) 推荐(0) 编辑
摘要: MSDN上对virtual方法的解释:试着翻译如下当一个方法声明包含virtual修饰符,这个方法就是虚方法。如果没有virtual修饰符,那么就不是虚方法。非虚方法的实现是不变的:不管该方法是被声明该方法的类的实例调用,还是该类的子类所调用,实现的结果都是一样。相比之下,虚方法会在子类中被取代。取代继承的虚方法的过程就是override。在一个虚方法的调用中,方法所在的实例的运行时类型决定了实际哪个方法要被实现。在一个非虚方法的调用中,实例的编译时类型(编译时类型与运行时类型的区别)是决定性因素。准确地说,当一个参数列表为A,名叫N的方法在编译时类型C和运行时类型R的实例上调用时(R或者是C 阅读全文
posted @ 2013-09-09 14:53 瓜王 阅读(5023) 评论(1) 推荐(0) 编辑
摘要: IEnumeratorIEnumerator实现遍历的基本方法 :Current,MoveNext(),Reset() IEnumerableIEnumerable最基础的所有集合都实现的可遍历接口,可以和IEnumerator接口合作ICollectionICollection 无序的集合,包含集合的基本操作,Add(T),Remove(T),Clear(),Contains(),CopyToIListIList 有序的集合,因此增加了IndexOf(),Insert(int,T),和RemoveAt(int)ISet 没有顺序,元素不可重复,有集合的交,并,去除等操作IDicti... 阅读全文
posted @ 2013-09-03 10:24 瓜王 阅读(608) 评论(0) 推荐(0) 编辑
摘要: 静态变量和常量,存储在静态存储区。常常是比较低的内存区开始,如000堆:new的时候所存储的,会被GC。堆是动态的,堆的地址随着储存的东西越来越大,是向下走的,即地址越来越大。比如一开始是2000,然后如果程序要求新的内存,于是变成2004,2008。栈:存储函数的局部变量和参数。当函数结束时内存会被回收。栈通常是从很高的位置开始。然后是向上走,地址越来越小。那么堆和栈会不会有朝一日重叠呢?的确有可能,但现在几乎不会。一旦重叠了,程序就挂了。 阅读全文
posted @ 2013-08-31 19:20 瓜王 阅读(184) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 18 下一页