C\#범용 의뢰 의 용법 실례 분석

2373 단어 C#의뢰 하 다.
본 고의 실례 는 C\#범 형 위탁 의 용법 을 서술 하 였 다.모두 에 게 참고 하도록 공유 하 다.구체 적 인 분석 은 다음 과 같다.
거품 정렬 은 모두 가 알 고 있 습 니 다.예 를 들 어 성형 배열 은 거품 정렬 으로 작은 것 부터 큰 것 까지 정렬 할 수 있 습 니 다.
그러나 이 는 성형 배열 에 따라 정렬 하 는 것 에 국한 되 는데 어떻게 임의의 유형 에 따라 정렬 할 수 있 습 니까?예 를 들 어 하나의 유형의 특정한 속성 에 따라 정렬 할 수 있 습 니까?
예 를 들 어 MEmployee 를 요소 로 하 는 배열 을 정의 하고 MEmployee 의 Salary 속성 에 따라 정렬 합 니 다.유사 한 것 은 다른 유형 에 대한 비교 로 확대 할 수 있 습 니 다.
원소 클래스 정의:

public class MEmployee
{
  public string Name { get; private set; }
  public decimal Salary { get; private set; }
  public MEmployee(string name, decimal salary)
  {
    this.Name = name;
    this.Salary = salary;
  }
  public override string ToString()
  {
    return string.Format("{0},{1:C}", Name, Salary);
  }
  public static bool CompareSalary(MEmployee e1, MEmployee e2)
  //           
  {
    return e1.Salary < e2.Salary;
  }
}
비교 클래스 정의:
//BubbleSorter 는 현재 통용 되 는 정렬 클래스 입 니 다.여기 서 의뢰 가 관건 적 인 역할 을 합 니 다.

public class BubbleSorter
{
  //         ,          ,
  //          Func  ,      ,  bool  
  public static void Sort<T>(IList<T> sortArray,Func<T,T,bool> comparison)
  {
    for (int i = 0; i < sortArray.Count; i++)
    {
      for (int j = i + 1; j < sortArray.Count; j++)
      {
        if (comparison(sortArray[j],sortArray[i]))
        //          
        {
          T temp =sortArray[i];
          sortArray[i] = sortArray[j];
          sortArray[j] = temp;
        }
      }
    }
  }
}
테스트 코드:

private void button_    3_Click(object sender, EventArgs e)
{
  MEmployee[] employees =
  {
    new MEmployee("Ronaldo",40000),
    new MEmployee("Rivaldo",35000),
    new MEmployee("CRonaldo",80000)
  };
  BubbleSorter.Sort<MEmployee>(employees, MEmployee.CompareSalary);
  foreach (MEmployee oTmp in employees)
  {
    Console.WriteLine(oTmp.ToString());
  }
}
테스트 결 과 는 다음 그림 과 같다.

본 고 에서 말 한 것 이 여러분 의 C\#프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기