C# 조건자

王林
풀어 주다: 2024-09-03 15:27:25
원래의
933명이 탐색했습니다.

내장 일반 유형 대리자는 네임스페이스 시스템 아래에 정의된 C#의 조건자 대리자입니다. 특정 기준 세트를 포함하는 네임스페이스 및 메소드는 전달된 매개변수가 주어진 기준을 충족할 수 있는지 여부를 결정하기 위해 조건자 대리자와 함께 작동할 수 있으며 이 기준은 true 또는 false 값을 반환하는 단 하나의 입력과 조건자 대리자를 가져옵니다. 다른 Delegate Func Delegate, Action Delegate와 동일합니다.

구문:

public delegate bool Predicate <in P>(P obj);
로그인 후 복사

객체 유형이 P로 표시되고 obj는 메소드 내에서 정의된 기준을 비교하고 조건자 위임으로 표시되는 객체입니다.

C#에서 Predicate Delegate 작업

  • 참 또는 거짓을 반환하는 함수는 조건자이고 조건자에 대한 참조는 조건자 대리자입니다.
  • 조건자 위임 기능은 .NET 2.0 출시와 함께 도입되었습니다. 프레임워크입니다.
  • 조건자 함수를 정의할 수 있으며 조건자 대리자를 통해 다른 함수에 매개변수로 전달할 수 있습니다.
  • Func의 특별한 경우는 하나의 매개변수만 입력으로 사용하고 true 또는 false인 부울 값을 반환하는 조건자 대리자입니다.
  • 람다식이나 무명 메서드 등 어떤 메서드라도 조건자 대리자 내에 작성할 수 있습니다.
  • 제네릭 형식은 람다 식과 함께 사용될 때 조건자 대리자의 인수로 사용됩니다.

C# 조건자의 예

다음은 언급된 예입니다.

예시 #1

매개변수로 전달된 주어진 문자열이 대문자인지 여부를 확인하는 프로그램에서 조건자 대리자를 사용하는 방법을 보여주는 C# 프로그램

코드:

using System;
//a namespace called program is defined
namespace program
{
//a class called check is defined
public class check
{
//a Boolean method is defined to check if the given string is written in capital letters or not. If written in capital letters, true is returned else False is returned.
static bool IsUC(string stri)
{
return stri.Equals(stri.ToUpper());
}
//main method is called
static void Main(string[] args)
{
//a predicate delegate is defined with object type as string and IsUC is an object which compares the criteria that is defined within a method and is represented by predicate delegate.
Predicate<string> isU = IsUC;
//The result of the predicate delegate is stored in a variable called res
bool res = isU("welcome to c#");
//the result is displayed
Console.WriteLine(res);
}
}
}
로그인 후 복사

출력:

C# 조건자

설명:

  • 위 프로그램에는 program이라는 네임스페이스가 정의되어 있습니다. 그런 다음 check라는 클래스가 정의됩니다. 그런 다음 주어진 문자열이 대문자로 쓰여졌는지 여부를 확인하기 위해 Boolean 메서드를 정의합니다. 주어진 문자열을 대문자로 쓰면 true를 반환하고 그렇지 않으면 False를 반환합니다. 그런 다음 메인 메소드가 호출됩니다.
  • 그러면 Predicate Delegate를 문자열로 객체타입으로 정의하고, IsUC는 메소드 내에서 정의된 기준을 비교하여 Predicate Delegate로 표현되는 객체입니다. 그런 다음 조건자 대리자의 결과는 res라는 변수에 저장됩니다. 그러면 결과가 표시됩니다.

예시 #2

주어진 문자열의 길이가 지정된 값보다 작은지 여부를 확인하기 위해 프로그램에서 조건자 대리자를 사용하는 방법을 보여주는 C# 프로그램입니다.

코드:

using System;
//a class called program is defined
class program
{
// a predicate delegate is defined with object type as string
public delegate bool my_del(string stri);
// a method is defined inside a predicate delegate by passing the object as parameter to check if the length of the given string is less than a specified value. If less than the given specified value, true is returned else false is returned
public static bool fun(string stri)
{
if (stri.Length < 5)
{
return true;
}
else
{
return false;
}
}
//Main method is called
static public void Main()
{
// a predicate delegate is defined with object type as string and fun is an object which compares the criteria that is defined within a method and is represented by predicate delegate.
my_del obj = fun;
//The string to be passed as a parameter to predicate delegate is written here
Console.WriteLine(obj("Shobha"));
}
}
로그인 후 복사

출력:

C# 조건자

설명:

  • 위 프로그램에는 program이라는 클래스가 정의되어 있습니다. 그런 다음 조건자 대리자가 개체 유형을 문자열로 정의합니다. 그런 다음 주어진 문자열의 길이가 지정된 값보다 작은지 확인하기 위해 개체를 매개 변수로 전달하여 조건자 대리자 내부에 메서드가 정의됩니다. 문자열의 길이가 지정된 값보다 작으면 true를 반환하고 그렇지 않으면 false를 반환합니다.
  • 그런 다음 Main 메소드가 호출됩니다. 그런 다음 조건자 대리자는 개체 유형을 문자열로 정의하고 fun은 메서드 내에 정의된 기준을 비교하고 조건자 대리자로 표시되는 개체입니다. 그러면 마지막으로 술어 대리자에게 매개변수로 전달될 문자열이 작성됩니다.

장점

C# Predicate의 장점은 다음과 같습니다.

  • 조건자 대리자는 값 목록을 필터링해야 할 때 유용합니다.
  • 일회성 검색 기능을 위해 조건자 대리자를 인라인으로 만들 수 있습니다.
  • 일반 컬렉션에서 항목을 검색해야 할 때 조건자 대리자를 사용할 수 있습니다.
  • 조건자 대리자를 사용하면 코드 길이가 짧아지고 true 또는 false가 반환됩니다.
  • 익명 메서드, 람다 식을 조건자 대리자에 할당할 수 있습니다.
  • 조건자 대리자는 런타임에 논리를 제공하며 이는 간단한 논리일 수도 있고 복잡한 논리일 수도 있습니다.

위 내용은 C# 조건자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!