木子屋 Dnawo's BLOG

分类:Web编程

共 938 篇

List<T>.RemoveAll方法使用示例

List.RemoveAll允许你自定义删除条件,这主要依赖于它的参数,我们先看下它的签名: Predicate是一个委托,我们再看下它的定义: List.RemoveAll方法在执行过程中,会将每项值传给函数match,若match返回true,则该项将被删除,否则不删除该项。下边我们来看个例子: 执行结果: 1 2 3 4 5 6 7 8 9 10 ----------------------------- 1 3 5 7 9 类似的例子并不少见,JavaScript的Array.sort方法也是根据参数(函数)的返回值来判断任意两项的大小从而实现数组按自定义方式排序的。

.NET(C#)版DateAdd和DateDiff函数

/// <summary> /// 通过向指定日期添加间隔,返回新的 DateTime 值 /// </summary> /// <param name="datepart"></param> /// <param name="number"></param> /// <param name="date"></param> /// <returns></returns> public DateTime DateAdd(string datepart, double number, DateTime date) { switch (datepart) { case "…

Cache.Add的absoluteExpiration和slidingExpiration参数说明

Cache.Add方法完整签名如下: 对于absoluteExpiration和slidingExpiration两个参数,msdn说明如下: absoluteExpiration 类型:System.DateTime 所添加对象将过期并被从缓存中移除的时间。如果使用可调过期,则 absoluteExpiration 参数必须为 NoAbsoluteExpiration。 slidingExpiration 类型:System.TimeSpan 最后一次访问所添加对象时与该对象过期时之间的时间间隔。如果该值等效于 20 分钟,则对象在最后一次被访问 20 分钟之后将过期并从缓存中移除。如果使用绝对过期,则 slidingExpiration 参数必须为 NoSlidingExpiration。…

ASP.NET导航控件TreeView根据登录用户显示不同的菜单

通常,我们使用SiteMapDataSource控件做为TreeView控件的数据源,而SiteMapDataSource控件的StartingNodeUrl属性可以设置它从哪个节点开始读取地图文件(.sitemap),这样,对不同的登录用户设置不同的StartingNodeUrl属性值,就能达到不同的用户登录后显示不同菜单的效果。 示例代码 Web.sitemap: Default.aspx:

面试题:最后一人开始时的位置?

题目 50人排一队,从1开始报数,3倍数的退出,到尾后头的人接着报(如第2轮时第1个人报51),问最后1人开始时的位置? 代码 C#代码1(int版,退出的保留其位置): C#代码2(List版,退出的不保留位置,后边的前移):

Web.config好用,但不宜滥用

在ASP.NET应用程序中,Web.config文件用于存储应用程序配置信息,并且ASP.NET提供了专门的类(如:System.Configuration.ConfigurationManager)来读取配置,这使得我们非常乐意把一些短小的数据存放在Web.config中。 但有一点值得注意:每次修改Web.config,都不可避免的会导致Session丢失。很显然,对于一个已经在运行的站点来说,修改Web.config则意味着所有登录用户被退出,这是非常不可取的。 所以,我们应该有选择性的在Web.config存储数据,所有存储在Web.config的数据,在站点运行后都不应被修改,这一点非常有必要。

ASP.NET密码框赋默认值方法

对于普通的文本输入框,可以使用下边的方法赋默认值: 将输入框类型改为密码后,页面上密码框总是空白,默认值丢失: 查看html代码,发现是缺少了value属性,只能在代码中另外再加下:

System.Web.HttpException: 无法使用前导 .. 在顶级目录上退出。

在ASP.NET页面使用TreeView控件时意外的报错,异常详细信息: System.Web.HttpException: 无法使用前导 .. 在顶级目录上退出。 问题重现 Web.sitemap: Default.aspx: 错误分析 Web.sitemap文件中的url相对地址,在TreeView控件中都将站点根目录(顶级目录)视为起始路径,而不论TreeView控件所在页面的实际位置,所以对于"../Default.aspx"这样的url,已跳出了站点目录之外,程序并报错。

通过MSIL看foreach循环

对应的MSIL代码为: 下边我们做些简单的分析 我们在C#代码中只声明了两个局部变量names和name,但在MSIL中多出了4个。 可以看到,MSIL先创建辅助字符串数组CS$0$0000,分配各元素的值,然后赋值给我们的names数组,感觉是转了一圈间接的来创建names数组,不知有什么优点? 从这段代码可以看出,foreach循环的内部其实是使用了for循环,CS$7$0002变量就相当于我们for循环中的i。让人困惑的是,这边操作的字符串数组即非CS$0$0000,也非names,又弄了个新数组CS$6$0001来用于循环,实在不解。 结论 在C#中,foreach循环的内部还是使用for循环。