• C#新特性


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace LocalApp.ConsoleApp
    {
        
    class Program
        
    {
            
    delegate void LambdaHandler();

            
    static void Main(string[] args)
            
    {
                
    //Func 封装一个具有 1 - 4 个参数并返回 TResult 参数指定的类型值的方法。

                Func
    <intstring> func = delegate(int i) return Convert.ToString(i * i); };
                Console.WriteLine(func(
    3));

                
    /******************************************/

                
    // lambda 表达式,i 参数
                Func<intstring> func2 = i => Convert.ToString(i * i);
                Console.WriteLine(func2(
    4));

                
    /******************************************/

                Func
    <stringstring> func3 = a => a.ToUpper();

                
    string[] array = "hebei","hubei","beijing","12" };

                IEnumerable
    <string> _array = array.Where<string>(b => b.EndsWith("i")); // array.Select(func3);

                
    foreach (string i in _array)
                    Console.WriteLine(i);

                
    /******************************************/

                Func
    <stringstringstringstringstring> __func = (a, b, c, d) => return a + "_" + b + "_" + c + "_" + d; };

                Console.WriteLine(__func(
    "h","e","l","lo"));

                
    /******************************************/


                Func
    <string> __func2 = () => "123456";

                Console.WriteLine(__func2());

                
    /******************************************/

                LambdaHandler lam 
    = () => Console.WriteLine( "1111111111");

                lam 
    += () => Console.WriteLine("22222222222");

                lam();

                
    /******************************************/
                
                
    //扩展方法
                string extTest = "hello world";

                Console.WriteLine(extTest.WordCount());

                
    foreach(string i in extTest.WordSplit())
                
    {
                    Console.WriteLine(i);
                }


                
    /******************************************/
                Console.ReadKey(
    true);
            }

        }


        
    /// <summary>
        
    /// 扩展方法
        
    /// </summary>

        public static class Extensions
        
    {
            
    public static int WordCount(this String str)
            
    {
                
    return str.Split(new char[] ' ''.''?' }, StringSplitOptions.RemoveEmptyEntries).Length;
            }


            
    public static string[] WordSplit(this String str)
            
    {
                
    return str.Split(new char[] {' ','.','?' }, StringSplitOptions.None);
            }

        }

    }

  • 相关阅读:
    设置eclipse控制台上的信息输入到某个文件
    [HTML]去除li前面的小黑点,和ul、LI部分属性[转]
    fscanf函数的应用
    VC++中编译C出错:error C2143: syntax error : missing ';' before 'type'
    eclipse console输出有长度限制
    jstl之核心标签
    vmware esxi 6.0 开启嵌套虚拟化
    Proxmox如何进入单人维护模式(重置root密码)
    jstl错误排除:According to TLD or attribute directive in tag file, attribute value does not accept any expressions
    EL表达式
  • 原文地址:https://www.cnblogs.com/yiki/p/1378446.html
Copyright © 2020-2023  润新知