在 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