上一页 1 2 3 4 5 6 7 8 ··· 14 下一页

2012年6月20日

C#GC管理(转)

摘要: 一直觉得C++的资源管理让人很痛苦。我不得不看很多经验性手册,以保证能很好的进行内存等资源的管理。相比之下,.Net(CLR)引入了垃圾回收机制(GC),来完成托管堆资源的回收,这毫无疑问,大大减轻了开发人员的负担。但是,天下没有绝对免费的午餐,要想清楚地了解GC的运行,很好的掌握资源的管理工作(特别是涉及到非托管资源的时候),对我这种AI没有突破性进展的人来说,并不是一件很容易的事情。恩。废话不说,来具体看看CLR的资源管理机制。首先,来看看CLR对内存(托管堆)的分配。最简单的说法就是,托管堆是被连续的一块一块分配出去的。具体一些,托管堆每次会将空堆开头的那块分配出去,然后指向新空堆的开头 阅读全文

posted @ 2012-06-20 09:12 zhuhai 阅读(522) 评论(1) 推荐(0)

ajax回调函数执行顺序带来的同步异步问题

摘要: 我们来看这样一段代码:$(function(){var a =0;$.getJSON( "student_toadd",{stunum:10},$.each(status,function(i){ ........................ a=10;.............................});)alert(a);});你说说看弹出的a是多少?我说:有可能是10,有可能是0。为毛?因为ajax的执行是异步的,有可能回调函数还没有拿到返回值,就弹出a了。解决办法var a = 0;$.ajax({ type:"get",dataT 阅读全文

posted @ 2012-06-20 09:03 zhuhai 阅读(262) 评论(0) 推荐(0)

C# Using用法三则

摘要: (1)引用命名空间using作为引入命名空间指令的用法规则为:using Namespace;在.NET程序中,最常见的代码莫过于在程序文件的开头引入System命名空间,其原因在于System命名空间中封装了很多最基本最常用的操作,如using System;这样,我们在程序中就可以直接使用命名空间中的类型,而不必指定详细的类型名称。using指令可以访问嵌套命名空间。命名空间命名空间是.NET程序在逻辑上的组织结构,而并非实际的物理结构,是一种避免类名冲突的方法,用于将不同的数据类型组合划分的方式。例如,在.NET中很多的基本类型都位于System命名空间,数据操作类型位于System.D 阅读全文

posted @ 2012-06-20 08:59 zhuhai 阅读(138) 评论(0) 推荐(0)

C#装箱与拆箱

摘要: 装箱就是将值类型转化为引用类型。拆箱就是将引用类型转化为值类型。装箱例子:static void Main(string [] args){ double box1=11.222;//定义一个值类型变量 object objbox=box1;//将变量装箱到一个引用类型对象中 Console.WriteLine("The Value is '{0}' and The Boxed is {1}",box1,objBox.ToString());}拆箱例子:static void Main(string [] args){ double box1=11.222; 阅读全文

posted @ 2012-06-20 08:38 zhuhai 阅读(122) 评论(0) 推荐(0)

C#委托基础(一)

摘要: 委托和其委托的方法必须具有相同的签名签名相同:1.参数类型相同 2.参数数量相同 3.返回值一致例子一:class Program { public delegate int MathMethod(int x, int y); public int Add(int a, int b) { return a + b; } static void Main(string[] args) { MathMethod mm; ... 阅读全文

posted @ 2012-06-20 08:17 zhuhai 阅读(138) 评论(0) 推荐(0)

== 和equals方法区别

摘要: == 和equals 方法区别①==操作比较的是两个变量的值是否相等。比较的是栈的内容②equals()方法比较的是两个对象的内容是否一致.比较的是堆的内容对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false。对于 string 类型,== 比较字符串的值。对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true。namespace ConsoleApplication1{ class Person { private string name; public string Name ... 阅读全文

posted @ 2012-06-20 08:13 zhuhai 阅读(229) 评论(1) 推荐(0)

再谈访问修饰符——读《你必须知道的.net》

摘要: public,具有最高的访问权限,就像是公司的董事会具有最高的决策权与管理权,public开放性最大,不管是否同一个程序集或者不管是否继承,都可以访问。protected,类似于公司业务部门经理的职责,具有对本部门的直接管辖权,在面向对象中就体现为子类继承这种纵向关系的访问约定,也就是只要继承了该类,则其对象就有访问父类的权限,而不管这两个具有继承关系的类是否在同一个程序集中。internal,具有类比意义的就是 internal类似于公司的职能部门的职责,不管是否具有上下级的隶属关系,人力资源部都能管辖所有其他部门的员工考勤。这是一种横向的职责关系,在面向对象中用来表示同一程序集的访问权限, 阅读全文

posted @ 2012-06-20 08:05 zhuhai 阅读(143) 评论(0) 推荐(0)

C#中override与new的区别

摘要: using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Demo{ // 基类 public class ParentClass { public ParentClass() { Console.WriteLine("在基类的构造方法"); } // 用virtual才可以在子类中用override,而new不需要这样 public virtual void ... 阅读全文

posted @ 2012-06-20 08:04 zhuhai 阅读(177) 评论(0) 推荐(0)

2012年6月19日

让ATM告诉你什么是封装——读《你必须知道的.net》

摘要: 例如每当发工资的日子小王都来到 ATM机前,用工资卡取走一笔钱为女朋友买礼物,从这个很帅的动作,可以得出以下的结论:— 小王和ATM机之间,以银行卡进行交互。要取钱,请交卡。— 小王并不知道ATM机将钱放在什么地方,取款机如何计算钱款,又如何通过银行卡返回小王所要数目的钱。对小王来说,ATM就是一个黑匣子,只能等着取钱;而对银行来说,ATM机就像银行自己的一份子,是安全、可靠、健壮的员工。— 小王要想取到自己的钱,必须遵守 ATM机的对外约定。他的任何违反约定的行为都被视为不轨,例如欲以砖头砸开取钱,用公交卡冒名取钱,盗卡取钱都将面临法律风险,所以小王只能安分守己地过着月光族的日子。那么小王和 阅读全文

posted @ 2012-06-19 22:45 zhuhai 阅读(355) 评论(0) 推荐(0)

属性——读《你必须知道的.net》

摘要: 属性(property)通常定义为 public,表示类的对外成员。属性具有可读、可写属性,通过 get 和 set访问器来实现其读写控制。例如上文中 Client 类的字段,我们可以相应地封装其为属性。public class Client{ private string name; //用户姓名 public string Name { get { return name; } set { name = value == null ? String.Empty : value; } } private int age; //用户年龄 public int Age { get { retur 阅读全文

posted @ 2012-06-19 22:23 zhuhai 阅读(155) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 ··· 14 下一页

导航

我的百度空间