浏览模式: 普通 | 列表

Why are strings immutable?

[ 2005-09-01 22:47:37 | 作者: admin ]
一直都想当然的接受了“strings are immutable”的事实,倒是没有仔细深入地想过原因。Google了一下,也没有找到满意的答案。我觉得大概有下面这些原因:

  避免字符串拷贝:如果String的内容可以改变,那么多个对象最好不要保存同一个字符串的引用,否则其中一个改变了String的内容就可能造成程序错误。这在多线程的环境下尤其重要,如果String不是immutable,那么它的所有编辑成员函数(Append, UpperCase等等)都必须要保证县城安全,性能损失惨重。如果每个对象保存String的一份Copy,则会消耗大量内存。Immutable实际上是一种近似于Copy-On-Write的折衷实现。
维护集合语义:String是最常用来作为集合(Map,Hashtable) ...

阅读全文…

最佳 .NET 网站推荐

[ 2005-08-31 14:28:23 | 作者: admin ]
最佳 .NET 图书暨培训软件
大奖获得者: Advanced .NET Remoting, Apress (www.apress.com)
亚军: Applied Microsoft .NET Framework Programming, Microsoft Press (www.microsoft.com) 购买
季军: Programming Windows with C#, Microsoft Press (www.microsoft.com) 购买
第四名: Programming ASP.NET, O'Reilly & Associates (www.oreilly.com)

最佳 .NET 构建与安装工具
大奖获得者: InstallShield Developer, InstallShield Software (www.installshield.com)
...

阅读全文…

在Asp.net中操作IIS的虚拟目录(C#)

[ 2005-08-03 03:23:08 | 作者: admin ]
创建虚拟目录
   
  DirectoryEntry是.Net给我们的一大礼物,他的名字我们就知道他的功能--目录入口。使用过ADSI的人都知道操作IIS,WinNT这些时,我们还需要提供他们的Path,操作IIS时,这个Path的格式为:
   
  IIS://ComputerName/Service/Website/Directory
   
  ComputerName:即操作的服务器的名字,可以是名字也可以是IP,经常用的就是localhost
  Service:即操作的服务器,IIS中有Web,也有FTP,还有SMTP这些服务,我们主要是操作IIS的Web功能,因此此处就是"W3SVC",如果是FTP则应是"MSFTPSVC"
  WebSite:一个IIS服务中可以包括很多的站点,这个就用于设置操作的站点。他的值是一个数字,默认是1,表示缺省站点,如果有其它,则从1开始依次类推。
...

阅读全文…

随机数的生成

[ 2005-08-03 03:21:37 | 作者: admin ]
随机数的生成(Asp.Net,C#)
Random 类 名空间:
            System.Object
                    System.Random

表示伪随机数生成器,一种能够产生满足某些随机性统计要求的数字序列的设备。

备注

               伪随机数是以相同的概率从一组有限的数字中选取的。所选数字并不具有完全的随机性,因为它们是用一种确定的数学算法选择的,但是从实用的角度而言,其随机程度已足够了。

                 随机数的生成是从种子值开始。如果反复使用同一个种子,就会生成相同的数字系列。产生不同序列的一种方法是使种子值与时间相关,从而对于 Random 的每个新实例,都会产生不同的系列。

                 要提高性能,请创建一个 Random,以便随着时间的推移可以生成很多随机数,而不要重复新建 Random 来生成一个随机数。
...

阅读全文…

关于Asp.net中Cookie的问题

[ 2005-07-24 05:47:13 | 作者: admin ]
关于Asp.net中Cookie的问题

关于Asp.net应用中cookie的问题处理:

 

1、在应用程序中有时会出现cookie混乱的问题,主要问题在RemoveCookie上,解决办法:

 

              /// <summary>

              /// 移除cookie,将Request和Response两个集合中的都清理

              /// Code by KentLi

              /// </summary>

              /// <param name="cookieName">cookie名称</param>

            public void RemoveCookie(string cookieName)

            {

               

                    HttpCookie ...

阅读全文…

原创日志 实数的判断 Decimal 类型

[ 2005-06-20 22:27:26 | 作者: admin ]
//本月累计 = 本月 + 上月累计
              if( ! Convert.ToDecimal(Request.Form["d05_03"]).Equals( Convert.ToDecimal(Convert.ToSingle(Request.Form["d05_01"]) + lastMonthData.D05_03)) )
              {
                strErrMsg+="销售收入-数据验证没用通过: 本月累计("+ Request.Form["d05_03"] +")=本月("+ Request.Form["d05_01"] +")+上月累计("+ lastMonthData.D05_03.ToString() +")\\n";
              }

sqlhelper使用指南

[ 2005-06-15 15:55:49 | 作者: admin ]
摘要:Data Access Application Block 是一个 .NET 组件,包含优化的数据访问代码,可以帮助用户调用存储过程以及向 SQL Server 数据库发出 SQL 文本命令。它返回 SqlDataReader、DataSet 和 XmlReader 对象。您可以在自己的 .NET 应用程序中将其作为构造块来使用,以减少需要创建、测试和维护的自定义代码的数量。您可以下载完整的 C# 和 Visual Basic .NET 源代码以及综合文档。

简介
您是否正在从事 .NET 应用程序数据访问代码的设计和开发?您是否觉得自己总是在反复编写相同的数据访问代码?您是否曾经将数据访问代码包装在 Helper 函数中,以便能够在一行中调用存储过程?如果是,那么 Microsoft® Data Access Application Block for .NET 正是为您设计的。
...

阅读全文…
不知道各位有没有做过用于打印的Web页。

我帮客户做这个页面的时候,喜欢把某些区域定为contentEditable="true",目的是让客户可以随便修改这些地方。

例如:

<Asp:Panel runat=server contentEditable="true"/>..<Asp:Label runat=server id=PrintTitle Text=PrintTitle/>..</Asp:Panel>