zoukankan      html  css  js  c++  java
  • C# 3.0将偷懒进行到底

    本文为博客园zpino原创

    http://www.cnblogs.com/zpino/ 转载请说明出处!

    最近在MS中了解到了一些东西。首先我要说,我绝对是一个新手。

    要说核心原理,俺最多能给你搬来一点,要是刨根问底的话,去找MSDN。

    隐藏类型局部变量

    这个很多人都知道(--!我现在才知道。貌似很受打击,有点孤陋寡闻)

    Code

    注意:

    1 var 不是一个类型。顶多就像一个占位的东西。编译后替换成int string等等.而且只能作为局部变量!

    2 var的值不能为null。不然编译器不能推断。

    3 不能为对象和集合的初始化。但是可以初始化数组,包括多维数组。 var q=new{1,2,3};

    初始化语句

    扩展方法

    这个也是一个很方便的东西

    可以扩展一个类的方法。

    比如

    Code

    extensions就是一个扩展方法。

    为什么会有这个效果呢?

    其实之前我建立一个静态类,和一个静态方法。而且方法接受的参数是 extensions(this int k)。

    上代码^_^

    Code

    这样就非常简单的实现不修改代码
    直接扩展方法。
    其中代码:

    Code

    被编译成了

    Code

    这个指针之类的有关系,俺暂时没有深入了解,所以不乱忽悠了。

    注意:

    1 方法扩展有优先级。实例方法>所在的namespace>别的namespace

    2 记得类、方法要用静态。 

    匿名对象

    Code

    匿名类型。不创建类 直接构建一个匿名类型,甚至不用写属性的类型,编译的时候会自动判断,使用起来和平时没区别。

    只是有点局限性,不适合跨越传递。

    注意:

    1 其中声明的qq和vv可以互相赋值。只要编译器判断的属性类型相同。

    2 声明的匿名类型全部继承Object

    --!写完了,有兴趣的,记得装个VS2008试试。不知道在公司用这些老板会不会发飙?:-D

  • 相关阅读:
    【转】进程间通信方式总结(windows 和linux)
    Python-Analysis-Malware
    现场取证之流量分析总结
    木马通信与防护墙穿透
    【PE结构】恶意代码数字签名验证
    32位与64位架构上的区别
    【API】网络编程模型、多线程
    【API】遍历进程的几种方式
    【病毒取样】取证分析之逆向服务器提权开启3389远程连接工具
    【CTF WEB】XSS-https://alf.nu/alert1
  • 原文地址:https://www.cnblogs.com/zpino/p/1297525.html
Copyright © 2011-2022 走看看