03 2013 档案
Lambda 表达式
摘要:lambda 表达式是一个可用于创建委托或表达式树类型的匿名函数。 通过使用 lambda 表达式,可以可作为参数或返回编写本地函数,该函数调用的值。 Lambda 表达式用于编写 LINQ 查询表达式特别有用。 若要创建 lambda 表达式,则在 lambda 运算符 => 的左侧指定输入参数 (如果有),因此,您放置表达式或语句在另一端块。 例如,lambda 表达式 x => x * x 指定名为 x 的参数并返回 x 的值计算的。如下面的示例所示,可以将此表达式传递给委托类型:delegate int del(int i);static void Main(string[
阅读全文
委托中使用变体
摘要:当向委托分配一个方法时,协变和逆变会提供用于使委托类型与方法签名匹配的灵活性。 协变允许方法具有的派生返回类型比委托中定义的更多。 逆变允许方法具有的派生参数类型比委托类型中的更少。示例 1:协变 说明 本示例演示如何将委托与具有返回类型的方法一起使用,这些返回类型派生自委托签名中的返回类型。 由DogsHandler返回的数据类型是Dogs类型,它是由委托中定义的 Mammals 类型派生的。 class Mammals{}class Dogs : Mammals{}class Program{ // Define the delegate. public delegat...
阅读全文
Session "丢失"问题
摘要:项目从.NET Framework3.5 升级 .NET Framework4.0后,如果用Response.Redirect();进行页面的跳转,服务端会把这个跳转动作当作是一个“新”的用户去访问网页。而这个时候,会给这个“新”的用户一个SessionID,那造成的结果是,以前保存在Session的东西,再也取不到了,其实,之前的Session还保存在StateServer里面,并不是真正的丢失,只是SessionID变了,而已。暂时的解决方案是:在Response.Redirect();前,加上Response.Cookies.add("保存SessionID的cookies的名
阅读全文