Local Function

ภัทชรัตน์ ดวงตา 650710575

Local Function ถูกนำเข้ามาใช้ใน C# 7.0 คือ Function ที่ถูกสร้างอยู่ใน Function หลัก เพื่อใช้ทำงานเฉพาะตัวของ Local Function นั้นๆ โดยจะช่วยให้โค้ดมีความเป็นระเบียบและอ่านง่าย

  • Local Function สามารถประกาศและเรียกใช้ได้จากเมธอด, คอนสตรัคเตอร์, Property accessors, Event accessors, Anonymous methods, Lambda expressions, Finalizers และ Local Function อื่นๆ

  • ไม่สามารถประกาศ Local Function ใน expression-bodied member ได้

  • Local Function สามารถเข้าถึงตัวแปรและพารามิเตอร์ของ Function หลักได้

  • Modifiers ที่สามารถใช้กับ Local Function คือ async, unsafe, static และ extern

  • ไม่สามารถใช้ private กับ Local Function ได้เพราะตัว Local Function เป็น private อยู่แล้ว และไม่สามารถทำให้เป็น public ได้

  • ไม่สามารถใช้การ Overloading กับ Local Function ได้

  • มี Local Function หลายตัวได้

  • ไม่สามารถใช้ Attribute กับ Local Function รวมทั้งพารามิเตอร์และประเภทพารามิเตอร์ของมัน

C# Local Function Syntax

<modifiers> <return-type> <method-name> <parameter-list>

Example

// C# program to illustrate local function
using System;
 
public class Program {
 
    // Main method
    public static void Main()
    {
        // Local Function
        void AddValue(int a, int b)
        {
            Console.WriteLine("Value of a is: " + a);
            Console.WriteLine("Value of b is: " + b);
            Console.WriteLine("Sum of a and b is: {0}", a + b);
            Console.WriteLine();
        }
 
        // Calling Local function
        AddValue(20, 40);
        AddValue(40, 60);
    }
}

Output

เปรียบเทียบกับภาษา Java/C/Python

Java

ในภาษา Java จะไม่มี Local Function โดยตรงแต่จะสามารถทำเลียนแบบ Local Function ได้โดยใช้ inner classes, anonymous classes และ lambda expressions ในตัวอย่างที่นำมาเสนอจะเป็นการใช้ lambda expressions เพื่อหาค่าแฟกทอเรียล

C

ในภาษา C ก็ไม่มี Local Function เช่นเดียวกับภาษา Java แต่ก็สามารถใช้วิธีอื่นเพื่อมาทดแทน Local Function ได้ คือ static function, การใช้ Macros และ Function Pointers ตัวอย่างเป็นการใช้ Function Pointers เพื่อเป็นการจำลอง Local Function ส่วนนี่คือส่วนที่เป็น Local Function

Python

ในภาษา Python มี Local Function ให้ใช้งานเหมือนกับ C# แต่จะเป็น Function คืนค่า dictionary ที่มีข้อมูลชื่อและค่าของตัวแปรที่อยู่ในขอบเขตของ Function หลัก โดยมี Syntax คือ

และ Local Function ใน Python ไม่ต้องมีการรับพารามิเตอร์ใดๆ

ในตัวอย่างจะมีการเรียกใช้ locals() เพื่อดึงค่าตัวแปร n ที่ส่งเข้ามาในพารามิเตอร์มาดำเนินการหาแฟกทอเรียลของ 5

VDO & Slide

อ้างอิง

GeeksforGeeks. (n.d.). Local function in C#. GeeksforGeeks. Retrieved October 15, 2024, from https://www.geeksforgeeks.org/local-function-in-c-sharp/

  • ตัวอย่างและเนื้อหา

Microsoft. (n.d.). Local functions. In C# programming guide. Retrieved October 15, 2024, from https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/local-functions

  • ตัวอย่างและเนื้อหา

  • C# Local Function Syntax

Toppr. (n.d.). Python locals. Retrieved October 15, 2024, from https://www.toppr.com/guides/python-guide/references/methods-and-functions/methods/built-in/locals/python-locals/

  • Local Function ใน Python

Last updated