首页 新闻 搜索 专区 学院

这句代码什么意思public static Func<object, string> isLogin = session => session as string ?? string.

0
悬赏园豆:5 [已解决问题] 解决于 2014-02-08 10:14

要语法分析,譬如=>  ?? 什么意思,详细点

c#
吃俺老孙一棒的主页 吃俺老孙一棒 | 初学一级 | 园豆:38
提问于:2013-10-12 18:50
< >
分享
最佳答案
0

DateTime? a = DateTime.Now;
 a = a ?? null;
 Console.WriteLine(a);//结果:当前时间,因为a的初值为当前时间,不为null

DateTime? a = DateTime.Now;

 a = a == null ? a : DateTime.Now;
Console.WriteLine(a);

是一样的

这个运算符只支持应用类型和可空类型。

Func<T, TResult> 委托你可以参考这个说的比较清楚:http://msdn.microsoft.com/zh-cn/library/bb549151.aspx

希望能帮到你

收获园豆:5
wolfy | 老鸟四级 |园豆:2636 | 2013-10-13 16:09
其他回答(3)
0

lamda表达式

56180825 | 园豆:1583 (小虾三级) | 2013-10-12 19:55
0

=> 是lamda表达式,也是一个委托,写法是一步步简化出来的具体内容你要自己百度了,内容比较多,??这个是运算符

举个例子你就知道了 

DemoClass  dClass;

dClass==null??new DemoClass 如果dClass为null 则实例化一个DemoClass对象给它,说白了就是检查对象是否为null的

Zery | 园豆:6151 (大侠五级) | 2013-10-12 23:58
1

等价于:

public static string isLogin(object obj)
        {
            return obj as string ?? string.Empty;
        }

使用方式:

string s = isLogin("fsdfs");

细节请参考:http://msdn.microsoft.com/en-us/library/bb549151.aspx

幻天芒 | 园豆:36912 (高人七级) | 2013-10-14 10:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册