1:关于JSON的问题:
JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是 JavaScript 很容易解释它,而且 JSON 可以表示比"名称 / 值对"更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。
例子:
//获取品种集合
private void getKnames(HttpContext context)
{
string result=MyCement.Utils.Json.ToJson(kindBil.SearchAll().ToList());
context.Response.ExpiresAbsolute=DateTime.Now.AddSeconds(-1);//表示立即过期
context.Response.Expires=-1;//为负数或零表示禁止了缓存
context.Rrsponse.Clear();//清除缓冲区的所有内容输出
context.Response.Write(result);//将字符串写入HTTP响应输出流
context.Response.End();//将当前所有缓冲的输出发送到客户端。
}
2:关于string与stringBuilder的使用注意事项
String 对象是不可改变的。每次使用 System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder类可以提升性能。
通过用一个重载的构造函数方法初始化变量,可以创建 StringBuilder类的新实例,正如以下示例中所阐释的那样
参考资料:
http://www.cnblogs.com/yunfeng8967/articles/1093832.html
关于枚举的使用及常用的地方
比如 我们的系统有不同的支付方式 那么我们可以使用枚举
public enum PayType {
Icbc = 0, //工商银行
Alipay = 1, //支付宝
bill = 2 //99bill }
然后我们我们在做程序的时候经常要判断当前使用的 支付方式是什么方式
那么我们可以使用switch语句 写一个例子哈:
private string getCurrentPayTypeStr(PayType pt)
{ string s = string.Empty; switch(pt)
{ case PayType.Icbc: s = "中国工商银行"; break;
case PayType.Alipay: s = "支付宝"; break; ... }
return s; }
又如:/// <summary>
/// 区域枚举
/// </summary>
public enum AreaEnum : int
{
/// <summary>
/// 华北
/// </summary>
HuaBei = 1,
/// <summary>
/// 东北
/// </summary>
DongBei = 2,
/// <summary>
/// 西北
/// </summary>
XiBei = 3,
/// <summary>
/// 西南
/// </summary>
XiNan = 4,
/// <summary>
/// 中南
/// </summary>
ZhongNan = 5,
/// <summary>
/// 华东
/// </summary>
HuaDong = 6
}
关于:Asp.net IList 与 List
IList<> list = new List<>();好还是 List<> list = new List<>() 好
第一种: IList<> list = new List<>(); 只是想创建一个基于接口IList 的对象的实例,只是这个接口是由List类实现的。所以它只是希望使用到IList 接口规定的功能而已 第二种: List<> list = new List<>(); 是想创建一个List对象实例 ,而且需要使用到List类的全部功能,进行相关操作。 可以看情况使用,如果只是简单的数据绑定和显示第一种足够,如果要进行排序等复杂的功能,就得用第二种. 效率当然是第一种高了,但功能少,第二种效率差那么一点,但功能多呀
接口不能直接实例化 但是接口派生出来的抽象类可以实例化 所有派生出来的抽象类都可以强制转换成接口的实例
第三条我解释一下:比如,IList <Class> IList11 =new List <Class>(); 也就是接口派生出来的抽象类可以转换为接口的实例,这也是常说的里氏替换原则(子类对象可以代替父类对象,但其父类对象不能代替子类对象)
首先,List<T>是一个类,IList<T>是一个接口。接口和类的区别是本质的,类是负责功能的实现,而接口则是负责功能的定义。所以它们的区别本质上也就是类和接口的区别。
具体来说,IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口。它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,那么使用IList<T>完全可以胜任。但是更多的时候,我们要对集合数据进行处理,从中筛选数据或者排序。这个时候IList<T>就爱莫能助了。
详细资料:http://www.cnblogs.com/conger/archive/2011/11/30/2269334.html