C#의 매력을 느껴 코드 뭉치를 한 줄로 작성

4039 단어
MSDN에서 발췌한 내용:https://msdn.microsoft.com/zh-cn/library/bb549151(v=vs.100).aspx
1. 평소 의뢰 하나 정의
using System;
//    
delegate string ConvertMethod(string inString);

public class DelegateExample
{
   public static void Main()
   {
      //  UppercaseString        
      ConvertMethod convertMeth = UppercaseString;
      string name = "Dakota";
      //     
      Console.WriteLine(convertMeth(name));
   }

   private static string UppercaseString(string inputString)
   {
      return inputString.ToUpper();
   }
}

2. 일반 의뢰 Func 등장
using System;

public class GenericFunc
{
   public static void Main()
   {
      //   Func<string,string>,        ,        
      Func<string, string> convertMethod = UppercaseString;
      string name = "Dakota";
      //     
      Console.WriteLine(convertMethod(name));
   }

   private static string UppercaseString(string inputString)
   {
      return inputString.ToUpper();
   }
}

3. 익명 함수(여기에 사용된 lambda)와 함께 등장, 코드 한 줄 완성!!!
using System;

public class LambdaExpression
{
   public static void Main()
   {
    // !!! , Func
<string, string> convert = s => s.ToUpper(); string name = "Dakota";
    // Console.WriteLine(convert(name)); } }

4. 응용, 하나의 그룹 안의 자모를 모두 대문자로 바꾸기
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;

static class Func
{
   static void Main(string[] args)
   {
      //    ,     ,   
      Func<string, string> selector = str => str.ToUpper();

      //     .
      string[] words = { "orange", "apple", "Article", "elephant" };
      //        Select  ,      
      IEnumerable<String> aWords = words.Select(selector);

      //       
      foreach (String word in aWords)
         Console.WriteLine(word);
   }
}      
/*
    :

   ORANGE
   APPLE
   ARTICLE
   ELEPHANT
*/

좋은 웹페이지 즐겨찾기