8月13日记录

本文介绍了JSON在JavaScript中的应用,包括数据转换与传递的过程。同时对比了String与StringBuilder在字符串操作上的性能差异,并探讨了枚举类型、IList与List在.NET中的使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值