ホームページ  >  記事  >  バックエンド開発  >  C# ローカル関数

C# ローカル関数

PHPz
PHPzオリジナル
2024-09-03 15:14:58771ブラウズ

別の関数の本体内にある関数であり、プライベートであり、スコープが作成された関数に制限されている関数は、C# ではローカル関数と呼ばれます。これを使用して、別のメソッドの本体内でメソッドを宣言できます。すでに定義されており、このローカル関数機能は C# バージョン 7.0 で C# に導入されました。別の関数の本体内で作成される関数のタイプは、この関数が作成される関数のタイプと同じであり、そのようなローカル関数はコンテナのメンバーによって呼び出すことができ、複数のローカル関数の作成が許可されます。ただし、ローカル関数での static キーワードの使用は許可されていません。

構文:

以下に構文を示します:

<modifiers: async | unsafe> <return-type> <method-name> <parameter-list>
  • ここで、async と unsafe はローカル メソッドで使用できる修飾子です。
  • 戻り値の型は、メソッドによって返される値の型です。
  • メソッド名はメソッドに付けられた名前です。
  • パラメータ リストは、メソッドに渡すことができるパラメータのリストです。

C# のローカル関数の動作

  • ローカル関数は、別の関数の本体内で宣言できるプライベート関数であり、そのようなローカル関数のスコープは、その関数が作成された関数に制限されます。
  • ローカル関数は、ファイナライザー、ラムダ式、プロパティ アセサー、コンストラクターなどから呼び出すことができます。
  • ローカル関数はデフォルトでプライベートであるため、アクセス修飾子と静的キーワードは、修飾子がプライベートであっても、ローカル関数では使用できません。
  • コンテナメソッド内で定義され、メソッドパラメータを含むローカル変数には、ローカル関数を使用してアクセスできます。
  • 属性は、ローカル関数、そのパラメータおよびパラメータの型には適用できません。
  • 修飾子 unsafe および async はローカル関数で使用できます。

言及されている例を以下に示します:

例 #1

2 つの数値を加算するプログラム内のローカル関数を示す C# プログラム。

コード:

using System;
//a class called check is defined
namespace LocalFunction
{
public class Program
{
// Main method is called
public static void Main(string[] args)
{
// the local methods are being called within the main method
int res = Addition(100, 200);
Console.WriteLine("The addition result of adding 100 and 200 is: {0}", +res);
//local method is created
int Addition(int x, int y)
{
return x + y;
}
}
}
}

出力:

C# ローカル関数

上記のプログラムでは、checkというクラスが定義されています。次に、ローカル メソッドが定義されているメイン メソッドが呼び出されます。次に、メイン メソッド内で作成されたローカル メソッドが呼び出され、追加される 2 つの数値がパラメータとしてローカル メソッドに渡されます。

例 #2

プログラム内のローカル関数をデモするための C# プログラム。

コード:

using System;
//a class called program is called
namespace LocalFunction
{
public class Program
{
//main method is called
public static void Main(string[] args)
{
//Local Function is created
int Function(int x)
{
return 100 * x;
}
//Calling the local function within the main method
Console.WriteLine("The product after performing the operation is: {0}",Function(10));
}
}
}

出力:

C# ローカル関数

上記のプログラムでは、programというクラスが定義されています。次に、メイン メソッドが呼び出され、その中で 100 を乗算した後の数値の積を求めるローカル メソッドがパラメータとして渡され、定義されます。次に、メイン メソッド内で作成されたローカル メソッドが呼び出され、100 を乗算した後に積を求める数値がパラメータとしてローカル メソッドに渡されます。

例 #3

数値の 2 乗を求めるプログラム内のローカル関数を示す C# プログラム。

コード:

using System;
//a class called program is called
namespace LocalFunction
{
public class Program
{
//main method is called
public static void Main(string[] args)
{
//Local Function is created
int Square(int x)
{
return x * x;
}
//Calling the local function within the main method
Console.WriteLine("The square after performing the operation is: {0}",Square(10));
}
}
}

出力:

C# ローカル関数

上記のプログラムでは、programというクラスが定義されています。次に、メイン メソッドが呼び出され、その中にパラメータとして渡された数値の 2 乗を求めるローカル メソッドが定義されています。次に、メイン メソッド内で作成されたローカル メソッドが、二乗を求める数値をパラメータとしてローカル メソッドに渡して呼び出されます。

以上がC# ローカル関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:C# 匿名関数次の記事:C# 匿名関数