在 C# 中创建内联函数

Muhammad Maisam Abbas 2024年2月16日
  1. 在 C# 中使用 Lambda 表达式创建内联函数
  2. 在 C# 中使用 Lambda 语句创建内联函数
  3. 在 C# 中使用局部函数创建内联函数
在 C# 中创建内联函数

在本教程中,我们将讨论在 C# 中创建内联函数的方法。

在 C# 中使用 Lambda 表达式创建内联函数

在 C 和 C++ 之类的编程语言中,内联函数用 inline 关键字声明。内联函数中的代码由编译器替换为函数调用。因此,使代码内联。遗憾的是,没有内置关键字可以在 C# 中声明内联函数。我们可以在 C# 中使用 lambda 表达式创建一个内联函数。Lambda 表达式用于在 C# 中创建匿名函数。=> 关键字用于编写 lambda 表达式。

以下代码示例向我们展示了如何在 C# 中使用 lambda 表达式创建内联函数。

using System;

namespace inline_function {
  class Program {
    static void Main(string[] args) {
      Func<int, int, int> add = (x, y) => x + y;
      Console.WriteLine(add(1, 2));
    }
  }
}

输出:

3

我们创建了一个内联函数,该函数以 C# 中的 lambda 表达式返回 12 的总和。我们创建了 add 函数,该函数使用 => 关键字返回两个整数变量的和。Func<int, int, int> 指定参数的数据类型,而 Func<int, int, int> 中的最后一个 int 指定匿名函数的返回类型。我们还可以使用 Action<T1, T2> 关键字指定匿名函数如果我们不想返回任何东西。下面的代码示例向我们展示了如何使用 Action<T1, T2> 关键字创建内联函数,该内联函数不会在 C# 中返回任何值。

using System;

namespace inline_function {
  class Program {
    static void Main(string[] args) {
      Action<int, int> sum = (x, y) => Console.WriteLine(x + y);
      sum(5, 6);
    }
  }
}

输出:

11

我们创建了一个内联函数,该函数以 C# 中的 lambda 表达式返回 56 的总和。我们创建了 sum() 函数,该函数使用 => 关键字返回两个整数变量的和。Action<int, int> 指定匿名函数的参数的数据类型。我们只能将 lambda 表达式用于一行代码。

在 C# 中使用 Lambda 语句创建内联函数

如果我们的代码中有多行代码,则必须使用 lambda 语句。Lambda 语句也用于声明可用作内联的匿名函数 C# 中的函数。在 lambda 语句中声明匿名函数与 lambda 表达式相似,唯一的区别是多行语句包含在 {}; 中。以下代码示例向我们展示了如何使用 C# 中的 lambda 语句创建内联函数。

using System;

namespace inline_function {
  class Program {
    static void Main(string[] args) {
      Action<int, int> sum = (x, y) => {
        int s = x + y;
        Console.WriteLine(s);
      };
      sum(6, 7);
    }
  }
}

输出:

13

我们创建了一个内联函数,用 C# 中的 lambda 语句显示 67 的总和。我们可以在 sum() 函数中编写多行代码。就像 lambda 表达式一样,有两种类型,一种是返回值的 Func<T,T-return>,另一种是不返回值的 Action<T>

在 C# 中使用局部函数创建内联函数

局部函数是 C# 中另一个函数内包含的函数。本地功能只能由包含它的功能来访问。局部函数在 7.0 及更高版本的 C# 中可用。本地函数可用于提供 C# 中的内联函数的功能。以下代码示例向我们展示了如何使用 C# 中的局部函数创建内联函数。

using System;

namespace inline_function {
  class Program {
    static void Main(string[] args) {
      void sum(int a, int b) {
        Console.WriteLine(a + b);
      }
      sum(7, 11);
    }
  }
}

输出:

18

我们创建了一个内联函数,该内联函数使用 C# 中的局部函数返回 711 之和。声明局部函数与声明常规常规函数相同。它只是在没有访问说明的情况下且在另一个函数中声明的。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相关文章 - Csharp Function