zoukankan      html  css  js  c++  java
  • .NET3.5新特性

    新增的语法确实解决了很多问题,方便的很多。总结一下,防止日后时间长忘记。 

      1.隐式类型化本地变量、隐式类型数组初始化

    /*
    * 1.1本地化类型隐藏
    * 1.2隐式类型数组初始化
    */
    /// <summary>
    ///
    /// </summary>
    public void HideType()
    {
    var i
    = 10;
    var s
    = "abc";
    // 隐式类型数组
    var list = new[] {1, 2, 3, 4};
    UseSet(list);
    var listEntity
    = new[]
    {
    new {Id = 1, Name = "Yang"},
    new {Id = 1, Name = "Che"}
    };
    UseSet(listEntity);
    }
    /// <summary>
    ///
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="list"></param>
    private void UseSet<T>(IEnumerable<T> list)
    {
    foreach(var item in list)
    {
    Console.Write(item
    + "\t");
    }
    }

      2.对象初始化器、集合初始化器

    /*
    * 2.对象初始化器
    * 3.集合初始化器
    */
    /// <summary>
    ///
    /// </summary>
    public void ClassInitialization()
    {
    var entity
    = new Entity {Id = 1, Name = "Yang"};

    var list
    = new List<Entity>
    {
    new Entity {Id = 1, Name = "Yang"},
    new Entity {Id = 2, Name = "Che"}
    };
    foreach (var item in list)
    {

    }
    }

      3.匿名类型 

    /*
    * 4.匿名类型
    */
    /// <summary>
    ///
    /// </summary>
    [Test]
    public void AnonymousTypes()
    {
    var anonymous1
    = new { Id = 10, Name = "Yang" };
    var anonymous2
    = new { anonymous1, a = 10 };
    Test(anonymous1);
    Test(anonymous2);
    }
    /// <summary>
    /// 4 匿名类型调用
    /// </summary>
    /// <param name="item"></param>
    private void Test(object entity)
    {
    foreach(var item in entity.GetType().GetProperties())
    {

    }
    }

      4.扩展方法 



    [Test]
    public void Expand()
    {
    var i
    = 10;
    var entity
    = new Entity
    {
    Id
    = 1, Name = "Yang"
    };
    var name
    = entity.GetFullName();
    }
    /// <summary>
    /// 扩展方法
    /// </summary>
    static class Expand
    {
    public static string GetFullName(this Entity entity)
    {
    return entity.ToString();
    }
    }

      5.委托、匿名方法、Lambda表达式

    using NUnit.Framework;

    namespace NewFeatures
    {
    internal delegate int MyDelegate(int i, int j);
    [TestFixture]
    public class Delegate
    {
    [Test]
    public void Main()
    {
    // 委托函数
    MyDelegate myDel = Function;
    // lambda表达式
    myDel += (x, y) => { return Function(x, y); };
    var value
    = myDel(10, 20);
    }

    private int Function(int i, int j)
    {
    return i + j;
    }
    }

    [TestFixture]
    public class AnonymousFunction
    {
    [Test]
    public void Main()
    {
    // 匿名方法
    MyDelegate myDel = delegate(int i, int j)
    {
    int a = i * j;

    return a;
    };

    myDel(
    10, 20);
    }
    }
    }

      当然还有Lambda表达式,和Linq语言。

    所有的这些新增的特性,统一的展现都是在Linq语言当中。都是为其进行服务的。

    事例:下载地址

  • 相关阅读:
    细节问题
    慕课 python 操作数据库
    转 Python爬虫入门七之正则表达式
    转 python面试题
    转 Perl函数返回值用法指导
    慕课爬虫实战 爬取百度百科Python词条相关1000个页面数据
    慕课爬虫
    转 Python爬虫入门五之URLError异常处理
    转 廖雪峰 urllib
    转 Python爬虫入门四之Urllib库的高级用法
  • 原文地址:https://www.cnblogs.com/zhuawang/p/2051441.html
Copyright © 2011-2022 走看看