1. 泛型约束更强大。比如支持有参构造函数、枚举、委托:

    void Foo<T>() where T : new(string, int), enum, delegate
  2. 空值判断符允许对属性/字段赋值:
    obj?.Name = "sdf"; //obj为null则什么也不做
  3. 索引器支持泛型:
    public T this<T>[int i]
    {
    get { return (T)arr[i]; }
    set { arr[i] = value; }
    }
  4. 支持将var作为参数类型,代表匿名类型,这样方法就可以返回匿名类型,完了同样用var接住返回值,并可以智能提示返回对象的属性,这就要求方法中每个return的匿名类型要一致。目前可以用dynamic代替,但就没了智能提示:
    public static var Create<T1, T2>(T1 arg1, T2 arg2)
    {
    return new { Item1 = arg1, Item2 = arg2 };
    }
  5. 支持内联out。这点其实在c#6.0差一点实现,但最终没如愿,我猜原因是在变量作用域上不好处理:
    if (int.TryParse("", out int i)) //结合类型推断,甚至连int都允许省略
    {
    Use(i);
    }
  6. 支持静态索引器:
    public static class Package
    {
    static readonly Dictionary<string, int> _dic; static Package()
    {
    _dic = new Dictionary<string, int>();
    _dic.Add("a", );
    _dic.Add("b", );
    _dic.Add("c", );
    } public static int this[string name]
    {
    get { return _dic[name]; }
    set { _dic[name] = value; }
    }
    } // use example
    Use(Package["b"]);
  7. 支持编译为本机exe/dll,准确说这个是对编译器的遐想。我倒不是为了性能,而是一为不要运行库,二为别让我们的源码赤裸裸的暴露在.net reflactor之流中。是有个.net native,但仅限商店应用,而且似乎太监了。
  8. 支持do-until循环句式,只有do-while不幸福。VB、Powershell这些小伙伴都支持,以语法见长的C#竟然不支持,说不通。

暂时就扯这些,有新想法再补上。

C#遐想/瞎想的更多相关文章

  1. C语言复习---二维数组和二级指针的关系:没关系,别瞎想(重点)

    前提:一维数组和一维指针为什么可以替换使用? ] = { , , }; int *p = a; ; i < ; i++) printf("%d ", *(p + i)); 上 ...

  2. 【瞎想】TDD与汉字;FDD与英语字母

    我觉得TDD与汉字;FDD与英语字母他们之间有相似性. FDD的上行和下行用频率的不同来区分,TDD的上行和下行用相同的频率然后在同一时刻相差半个波长(对称频率).如果用维度数描述,FDD是1维的话, ...

  3. 瞎比比系列---1st

    A - 项目管理HDU4858 /* 题意: 这个项目有n个节点, 两个节点间可能有多条边,不过一条边的两端必然是不同的节点. 0的时候:接下来两个数u v表示给项目u的能量值加上v: 1的时候: 这 ...

  4. 看了让人笑了很多很多次的NB的痔疮经历

    前言 这篇杂记其实是去年也就是 2013年9月30日转载的,后来在整理博客分类时七弄八弄误删掉了好多文章,就包括这一篇.今天,2014年9月29日,恰好恰好一年的时候居然在好久未登陆的 OneNote ...

  5. 实施费用也能DIY--走出软件作坊:三五个人十来条枪 如何成为开发正规军(九)[转]

    上次咱们讲完了开发费用的计算,很多人在后面跟帖在那里算费用. 有人说:你把程序员都不当人,94天,一天都不休息啊. 我想答曰:94天,是工作时间.不算双休日在里面.也就是说,实际的开发周期长度是94+ ...

  6. java 注解 基本原理 编程实现

    摘要: java 1.5开始引入了注解和反射,正确的来说注解是反射的一部分,没有反射,注解无法正常使用,但离开注解,反射依旧可以使用,因此来说,反射的定义应该包含注解才合理一些. java 1.5开始 ...

  7. 记一次与a标签相遇的小事

    最近做的一个项目,按钮使用的是a标签做的,样子还不错.不过正是这个a标签把我坑死了,有一个场景是点击a标签去调后台服务,为了防止用户频繁点击按钮提交,在去请求后台服务的时候肯定要先把按钮的事件给禁止掉 ...

  8. Life

    24小时热水.24小时无线WiFi.24小时空调:有人陪你,不孤单,不寂寞,不瞎想,不停的传播正能量

  9. CSS3动画第二式--组合动画

    接第一式之后的进阶招式,加入一些组合动画,剧情.动画啥的都是随意瞎想的,纯粹是为了熟悉2D.3D和过渡等css3代码写法.效果见下图: 代码如下(有点长,折叠一下): <!DOCTYPE htm ...

随机推荐

  1. Hawk 6. 高级话题:子流程系统

    子流程的定义 当流程设计的越来越复杂,越来越长时,就难以进行管理了.因此,采用模块化的设计才会更加合理.本节我们介绍子流程的原理和使用. 所谓子流程,就是能先构造出一个流程,然后被其他流程调用.被调用 ...

  2. 深入研究Visual studio 2017 RC新特性

    在[Xamarin+Prism开发详解三:Visual studio 2017 RC初体验]中分享了Visual studio 2017RC的大致情况,同时也发现大家对新的Visual Studio很 ...

  3. Unity3D框架插件uFrame实践记录(一)

    1.概览 uFrame是提供给Unity3D开发者使用的一个框架插件,它本身模仿了MVVM这种架构模式(事实上并不包含Model部分,且多出了Controller部分).因为用于Unity3D,所以它 ...

  4. [干货来袭]MSSQL Server on Linux预览版安装教程(先帮大家踩坑)

    前言 昨天晚上微软爸爸开了全国开发者大会,会上的内容,我就不多说了,园子里面很多.. 我们唐总裁在今年曾今透漏过SQL Server love Linux,果不其然,这次开发者大会上就推出了MSSQL ...

  5. 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

    微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...

  6. Flex 布局教程:语法篇

    作者: 阮一峰 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便 ...

  7. 【转】 FineBI:自助式BI工具打造业务分析的“快与准”

    如今的企业经营方式,业务对于数据分析有极大的需求,但却苦于没有数据以及工具的有效支持,业务分析仍就依赖于IT报表制作.而IT方不断地按业务需求去调研.确认业务逻辑,然后取数做报表,其中还要忍受业务的需 ...

  8. Android—Service与Activity的交互

    service-Android的四大组件之一.人称"后台服务"指其本身的运行并不依赖于用户可视的UI界面 实际开发中我们经常需要service和activity之间可以相互传递数据 ...

  9. Impress.js上手 - 抛开PPT、制作Web 3D幻灯片放映

    前言: 如果你已经厌倦了使用PPT设置路径.设置时间.设置动画方式来制作动画特效.那么Impress.js将是你一个非常好的选择. 用它制作的PPT将更加直观.效果也是嗷嗷美观的. 当然,如果用它来装 ...

  10. centos 6 安装配置openvpn

    下载地址:http://swupdate.openvpn.org/community/releases/http://www.oberhumer.com/opensource/lzo/download ...