>  기사  >  백엔드 개발  >  C# 익명 함수

C# 익명 함수

PHPz
PHPz원래의
2024-09-03 15:14:47342검색

C#에서 이름이 없는 함수 유형을 익명 함수라고 하며 이름이 없는 함수로도 표현할 수 있습니다. 익명 함수는 C#의 람다 식과 C#의 익명 메서드의 두 가지 유형입니다. 여기서 대리자를 생성하는 데 사용되는 익명 함수는 C#에서 람다 식이라고 하며 로컬 함수를 생성하고 인수와 쿼리로 전달할 수 있습니다. LINQ의 코드는 Lambda 표현식을 사용하여 작성할 수도 있습니다. 매개변수 목록을 사용할 수 없다는 점을 제외하면 익명 메소드에서도 동일한 기능이 제공됩니다.

C#의 익명 함수 유형

C#에는 두 가지 유형의 익명 함수가 있습니다. 그들은:

1. 람다 표현식

  • 대리자는 람다 표현식이라는 익명 함수 유형을 사용하여 생성할 수 있습니다.
  • 인수로 전달할 수 있는 람다 표현식을 사용하여 로컬 함수를 생성할 수 있습니다.
  • LINQ의 쿼리는 Lambda 표현식을 사용하여 작성할 수 있습니다.
  • C#의 람다 표현식 구문은 다음과 같습니다.
(input-parameters) => expression
예시 #1

숫자의 제곱을 구하는 프로그램에서 람다 표현식을 보여주는 C# 프로그램:

코드:

using System;
//a namespace called program is defined
namespace program
{
//a class called check is defined
class check
{
delegate int Findsquare(int number);
//main method is called
static void Main(string[] args)
{
//a lambda expression to find the square of a number is defined
Findsquare Obtainsquare = r => r * r;
int l = Obtainsquare(3);
Console.WriteLine("The Square of the given number is: "+l);
}
}
}

출력:

C# 익명 함수

위 프로그램에는 program이라는 네임스페이스가 정의되어 있습니다. 그런 다음 check라는 클래스가 정의됩니다. 그런 다음 기본 메서드가 호출됩니다. 그런 다음 숫자의 제곱을 찾기 위해 람다 표현식이 정의됩니다. 람다식을 이용하여 구한 숫자의 제곱이 표시됩니다.

예시 #2

목록에 숫자가 있는지 여부를 결정하는 프로그램에서 람다 표현식을 보여주는 C# 프로그램:

코드:

using System;
using System.Collections.Generic;
//a namespace called program is defined
namespace program
{
//a class called check is defined
class check
{
//main method is called
static void Main(string[] args)
{
//a new list of type integer is created
List<int> mylist = new List<int>();
//integers are added to the list using add() method
mylist.Add(10);
mylist.Add(20);
mylist.Add(30);
//a lambda expression and find method is used to determine if a number is present in the list
int found = mylist.Find(r => r == 20);
if(found==0)
{
Console.WriteLine("The number is present in the list");
}
else
{
Console.WriteLine("The number is not present in the list");
}
//a lambda expression and find method is used to determine if a number is present in the list
found = mylist.Find(r => r == 40);
if(found==0)
{
Console.WriteLine("The number is present in the list");
}
else
{
Console.WriteLine("The number is not present in the list");
}
}
}
}

출력:

C# 익명 함수

위 프로그램에는 program이라는 네임스페이스가 정의되어 있습니다. 그런 다음 check라는 클래스가 정의됩니다. 그런 다음 기본 메서드가 호출됩니다. 그런 다음 정수 유형의 새 목록이 생성됩니다. 그런 다음 Add() 메서드를 사용하여 정수가 목록에 추가됩니다. 그런 다음 Find() 메서드와 함께 람다 표현식을 사용하여 숫자가 목록에 있는지 여부를 결정합니다.

2. 익명 메소드

  • 이름이 없는 메소드를 C#에서는 익명 메소드라고 합니다.
  • 익명 메서드는 C# 버전 2.0부터 도입되었습니다.
  • 인라인 메소드를 생성할 때 익명 메소드를 사용하며, 다른 메소드에 매개변수를 전달하는 방식과 유사하게 매개변수도 메소드에 전달되어야 합니다.
  • 무명 메서드를 정의하는 데 대리자 키워드가 사용되며 이 메서드는 대리자 유형의 변수에 할당될 수 있습니다.
  • C#의 익명 메서드 구문은 다음과 같습니다.
Delegate(parameter_list)
{
//Block of code
};
예시 #1

프로그램에서 익명 메소드를 보여주는 C# 프로그램:

코드: 

using System;
//a class called program is defined
class program
{
//a delegate is created by using delegate keyword
public delegate void subject(string favsubject);
// Main method is called
static public void Main()
{
// a parameter is passed to the anonymous method using delegate keyword
subject sub = delegate(string favsubject)
{
Console.WriteLine("{0} is my favourite subject", favsubject);
};
sub("C#");
}
}

출력:

C# 익명 함수

위 프로그램에는 수업 프로그램이 정의되어 있습니다. 그런 다음 위임 키워드를 사용하여 위임을 만듭니다. 그런 다음 기본 메서드가 호출됩니다. 그런 다음 대리자 키워드를 사용하여 매개변수가 익명 메서드에 전달됩니다.

예시 #2

외부 메서드에 정의된 변수에 액세스할 수 있는 프로그램의 익명 메서드를 보여주는 C# 프로그램:

코드: 

using System;
//a class called program is defined
class program
{
//anonymous method is declared using delegate keyword
public delegate void subject(string favsubject);
// Main method is called
static public void Main()
{
//a string variable is defined in the outside method from anonymous method
string favsubject1 = "Coding_in_C#";
// a parameter is passed to the anonymous method using delegate keyword
subject sub = delegate(string favsubject)
{
Console.WriteLine("{0} is my favourite subject", favsubject);
Console.WriteLine("I also like {0}", favsubject1);
};
sub("C#");
}
}

출력:

C# 익명 함수

위 프로그램에는 program이라는 클래스가 정의되어 있습니다. 그런 다음 위임 키워드를 사용하여 위임을 만듭니다. 그런 다음 기본 메서드가 호출됩니다. 그런 다음 무명 메서드의 외부 메서드인 문자열 변수가 정의됩니다. 그런 다음 대리자 키워드를 사용하여 매개 변수가 익명 메서드에 전달됩니다. 무명 메소드는 무명 메소드 외부의 변수에도 액세스합니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:C#의 재귀 함수다음 기사:C#의 재귀 함수