惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
博客园 - 司徒正美
美团技术团队
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Troy Hunt's Blog
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
P
Proofpoint News Feed
云风的 BLOG
云风的 BLOG
Engineering at Meta
Engineering at Meta
Cisco Talos Blog
Cisco Talos Blog
T
Tor Project blog
B
Blog
NISL@THU
NISL@THU
月光博客
月光博客
博客园 - 【当耐特】
AWS News Blog
AWS News Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
腾讯CDC
L
Lohrmann on Cybersecurity
The Cloudflare Blog
L
LINUX DO - 最新话题
S
Security @ Cisco Blogs
S
Secure Thoughts
Spread Privacy
Spread Privacy
有赞技术团队
有赞技术团队
The Last Watchdog
The Last Watchdog
Project Zero
Project Zero
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Vercel News
Vercel News
H
Hacker News: Front Page
S
SegmentFault 最新的问题
Schneier on Security
Schneier on Security
aimingoo的专栏
aimingoo的专栏
P
Privacy & Cybersecurity Law Blog
博客园 - 三生石上(FineUI控件)
Forbes - Security
Forbes - Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
InfoQ
T
Tailwind CSS Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
G
GRAHAM CLULEY
W
WeLiveSecurity
小众软件
小众软件
Recorded Future
Recorded Future
Cyberwarzone
Cyberwarzone
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org

博客园 - 破甲

转:Chrome调试工具介绍 转:一组jQuery插件的连接 动态的链式传递执行 关于导出属性 Aop中动态横切与静态横切 老张的灵魂——敏捷回顾 LINQ to SQL(LINQ2SQL) vs. ADO.NET Entity Framework(ADOEF)-ccBoy版 ---阅读笔记 linq to sql 与linq to entities的选择 linq to sql 算ORM吗? 匿名方法实现(转) System.Linq扩张方法Where (Lambda表达式) Oracle的并发多版本 读一致性 共享锁 排他锁 LING与HQL(三) LINQ与HQL (二) LINQ 与 HQL (一) 挖掘ADO.NET Entity框架的性能 castle ar 的update方法!! HQL查询中的几个函数
C# 3.0的新特性(一)
破甲 · 2008-03-12 · via 博客园 - 破甲

特性一:类型的智能推演
    C#语言属于静态语言,类型的推演实际是由编辑器来完成;
    public void Main(){
       var i = 1;
       var s = "dfdsf";
    }
    编辑器依据你的赋值自动给出类型,但是你不能赋NULL值;
   另外
    public void Main(){
       var i = 1; 
        i= “哦我认为任务”;
     } 这样也是不被允许的,因为i已经是整型了;

特性二:CLR类型的扩张功能
    比如string这个类型在3.0之前,我们只能使用它提供的方法;无法继承,因为它是密封类型;
    public static Class Helper {
         public static bool IsIn(this object a, IEunmerable b){
               foreach(object o in b){
                   if(a == o)
                       return true;
               }
               return false;
        }
   }
   Console.Write("sdsd".IsIn(new string[]{"sasa","sdsd"}));
  需要注意的是,必须是静态类和静态方法;

特性三:自动属性
     public class Helper{
           public string Name{get; set;}
           public string Sex{get; private set;}
           public Helper(string sex){
                this.Sex = sex;
           }
    }
    自动属性其实没什么用,无非就是少记两个快捷键;不过和之前不一样的是,,可以在方法体内部指定访问级别;如上例,Sex属性只能内部访问;

特性四:对象初始化器
     var o = new Helper("男") {Name = "Gaby"};
     3.0新增的这个功能,貌似在 C++里就有了;也没多大用处;这里注意一点,构造函数的要优先于初始化器;

特性五:集合的初始化
     var list = new List<Helper>{
         new Helper("男") {Name = "Gaby"};
     }

特性六:Lamada表达式
    这是很有用的功能;具体使用有点像匿名方法;格式如下:
    (参数)=>{表达式或方法体}

  delegate void Printer(string a,string b)
  TestClass{
    Main()
   {
    Printer p = delegate(string a,string b){
           Console.Write(a+b);
      };
      p("hellow","world");
      Printer p1 = (a,b)=>a+b;
      p1"hellow","world");
    }
}