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

推荐订阅源

P
Privacy & Cybersecurity Law Blog
Vercel News
Vercel News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
罗磊的独立博客
F
Fortinet All Blogs
T
Threatpost
Y
Y Combinator Blog
博客园_首页
美团技术团队
Security Latest
Security Latest
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
V
V2EX - 技术
The Cloudflare Blog
L
LINUX DO - 热门话题
博客园 - 司徒正美
Jina AI
Jina AI
P
Proofpoint News Feed
宝玉的分享
宝玉的分享
C
CXSECURITY Database RSS Feed - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
WordPress大学
WordPress大学
The Hacker News
The Hacker News
P
Privacy International News Feed
T
The Exploit Database - CXSecurity.com
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
V
V2EX
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence
Latest news
Latest news
NISL@THU
NISL@THU
Google DeepMind News
Google DeepMind News
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cisco Blogs
雷峰网
雷峰网
Application and Cybersecurity Blog
Application and Cybersecurity Blog
B
Blog RSS Feed
W
WeLiveSecurity
D
DataBreaches.Net
G
Google Developers Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
GRAHAM CLULEY
Spread Privacy
Spread Privacy
Know Your Adversary
Know Your Adversary
TaoSecurity Blog
TaoSecurity Blog
S
Securelist
Help Net Security
Help Net Security

博客园 - 一麦

GridView的增删改查和分页 - 一麦 - 博客园 团队开发之环境搭建 .Net下SqlServer命名规范 XXX公司CRM项目开发日志 Coolite Toolkit学习笔记 LINQ新特性简介及入门教程 反射学习 常用正则表达式 正则表达式基本用法 正则表达式基础 页面生命周期小结 设计模式小结 Asp.net 中HttpHandler,HttpModule,IHttpHandlerFactory的原理与应用(一) FileStream读写文件【StreamWriter 和 StreamReader】 .NET常用集合类 面向对象点滴 C#基础点滴 全新对待.net---一次全面的旅程 委托和事件--一直以来的痛
3.x新特性
一麦 · 2009-04-23 · via 博客园 - 一麦


3.x特性主要是编程语言层面的,只是编译器在编译的时候给我们添加了许多的代码,其编译后的IL和2.0的没有什么不一样。
3.x的特性有:匿名类型,扩展方法,匿名方法(2.0)Lambda表达式,自动实现字段,对象初始化和集合初始化.

3.0的所有新特性,仅仅是在其编译器上增加了功能,使我们的代码更加的简洁,特性下写的代码编译成中间语言和2.0没有什么差异,其CLR仍然是2.0的。
也就是说:C#3.x仅仅是基于.NET Programming Language,而不是基于.NET Framework的

1. Anonymous Type匿名类型:不需要既定类型的情况下使用其对象实例。个人认识像是使用数据结构。
var v = new { ID = Guid.NewGuid(), Name = "tye" }; // 匿名方法的使用


.net 3.0的新特性---匿名方法,允许内联申明方法而无需使用代理函数,而Lambda表达式能使用更简洁的代码完成相同的功能。
2. Anonymous Method匿名方法:匿名方法允许我们以一种“内联”的方式来编写方法代码,
将代码直接与委托实例相关联,从而使得委托实例化的工作更加直观和方便。
addbutton.click += delegate
{
   listbox.items.add(textbox.text);
}

addbutton.click += delegate(object sender,eventargs e)
 {
    messagebox.show((button)sender).text);
 }
delegate void mydelegate();
 mydelegate d = delegate
 {
    ...
    return;
 }

 delegate int mydelegate();
 mydelegate d = delegate
 {
    ...
    return 100;
 }

3.Lambda表达式
class Program
    {
        static void Main()
        {
            Function<int, bool> function3 = x => x > 0;
            function3(20);
        }
    }

    delegate TResult Function<TArgs, TResult>(TArgs args);


3.x特性例子,除了扩展方法外
class AnonymousTest
    {
        public void Anonymous()
        {
            var v = new { ID = Guid.NewGuid(), Name = "tye" }; // 匿名类型


            MyDelegate myDelegate = new MyDelegate(Method); // 命名委托
            myDelegate(3, "hello");

            MyDelegate myDelegate2 = delegate(int x, string y) //匿名方法的使用
            {
                Console.WriteLine(x + "," + y);
            };
            myDelegate2(5, "crj");

            MyDelegate myDelegate3 = (x, y) => { Console.WriteLine(x + y);  }; //Lambda表达式
        }

        public void Method(int x, string y)
        {
            Console.WriteLine(x + "," + y);

            var names = list.Where(name => name.EndsWith("t")); //LINQ
        }

        public double X { get; set; } //自动实现属性
        public double Y { get; set; }

        AnonymousTest at = new AnonymousTest { X = 1, Y = 3 }; // 对象初始化

        List<string> list = new List<string> { "tye", "crj", "hkb" }; //集合初始化