แบบฝึกหัด - ใช้พารามิเตอร์ในวิธีการ

เสร็จสมบูรณ์เมื่อ

เมื่อสร้างวิธีการ คุณมักจะต้องการใส่ข้อมูลบางอย่างสําหรับวิธีการใช้ ข้อมูลที่ใช้โดยเมธอดจะเรียกว่าพารามิเตอร์ คุณสามารถใส่พารามิเตอร์ได้มากเท่าที่ต้องการเพื่อทํางานให้สําเร็จหรือไม่มีเลย

คําศัพท์ 'พารามิเตอร์' และ 'อาร์กิวเมนต์' มักใช้สลับกัน อย่างไรก็ตาม 'พารามิเตอร์' หมายถึงตัวแปรในลายเซ็นของเมธอด 'อาร์กิวเมนต์' คือค่าที่ส่งผ่านเมื่อมีการเรียกเมธอด

เพิ่มพารามิเตอร์ไปยังวิธีการ

พารามิเตอร์ในวิธีการ ทํางานคล้ายกับตัวแปร มีการกําหนดพารามิเตอร์โดยการระบุชนิดข้อมูล ตามด้วยชื่อของพารามิเตอร์ มีการประกาศพารามิเตอร์ในลายเซ็นของเมธอด และตัวเรียกเมธอด จะจัดเตรียมค่าสําหรับพารามิเตอร์แทนการเตรียมใช้งานภายในเมธอดเอง พิจารณาโค้ดต่อไปนี้:

	CountTo(5);

	void CountTo(int max) 
	{
		for (int i = 0; i < max; i++)
		{
			Console.Write($"{i}, ");
		}
	}

ในตัวอย่างนี้ วิธีการ CountTo จะยอมรับพารามิเตอร์จํานวนเต็มที่มีชื่อว่าmax มีการอ้างอิงพารามิเตอร์ ใน for รอบ ของวิธีการ เมื่อมีการ CountTo เรียกใช้ จํานวนเต็ม 5 จะถูกระบุเป็นอาร์กิวเมนต์

ในแบบฝึกหัดนี้ คุณจะได้เรียนรู้วิธีสร้างและใช้พารามิเตอร์วิธีการของคุณเอง

เตรียมสภาพแวดล้อมการเข้ารหัสของคุณ

โมดูลนี้ประกอบด้วยกิจกรรมลงมือทําซึ่งจะแนะนําคุณตลอดกระบวนการสร้างและเรียกใช้รหัสการสาธิต คุณควรทํากิจกรรมเหล่านี้ให้เสร็จสมบูรณ์โดยใช้ Visual Studio Code เป็นสภาพแวดล้อมการพัฒนาของคุณ การใช้ Visual Studio Code สําหรับกิจกรรมเหล่านี้จะช่วยให้คุณเขียนและเรียกใช้โค้ดในสภาพแวดล้อมของนักพัฒนาที่มืออาชีพใช้ทั่วโลกได้อย่างสะดวกขึ้น

  1. เปิด Visual Studio Code

    คุณสามารถใช้เมนูเริ่มต้นของ Windows (หรือทรัพยากรที่เทียบเท่าสําหรับระบบปฏิบัติการอื่น) เพื่อเปิด Visual Studio Code

  2. บนเมนู ไฟล์ รหัส Visual Studio เลือก เปิดโฟลเดอร์

  3. ในกล่องโต้ตอบ เปิดโฟลเดอร์ ให้ไปยังโฟลเดอร์ Windows Desktop

    หากคุณมีตําแหน่งโฟลเดอร์อื่นที่คุณเก็บโครงการโค้ดไว้ คุณสามารถใช้ตําแหน่งโฟลเดอร์นั้นแทนได้ สําหรับการฝึกนี้ สิ่งสําคัญคือการมีตําแหน่งที่ตั้งที่ง่ายต่อการค้นหาและจดจํา

  4. ในกล่องโต้ตอบ เปิด โฟลเดอร์ ให้เลือก เลือกโฟลเดอร์

    ถ้าคุณเห็นกล่องโต้ตอบความปลอดภัยที่ถามว่าคุณเชื่อถือผู้เขียนหรือไม่ ให้เลือก ใช่

  5. บนเมนู เทอร์มินัล Visual Studio Code ให้เลือก เทอร์มินัลใหม่

    โปรดสังเกตว่าพร้อมท์คําสั่งในแผงเทอร์มินัล จะแสดงเส้นทางโฟลเดอร์สําหรับโฟลเดอร์ปัจจุบัน เช่น:

    C:\Users\someuser\Desktop>
    

    หมายเหตุ

    ถ้าทํางานบนพีซีของคุณเอง แทนที่จะทํางานใน Sandbox หรือสภาพแวดล้อมที่เป็นโฮสต์ และคุณจบมอดูล Microsoft Learn อื่นๆ ใน C# series นี้ คุณอาจสร้างโฟลเดอร์โครงการสําหรับตัวอย่างโค้ดไว้แล้ว ถ้าเป็นกรณีนี้ คุณสามารถข้ามขั้นตอนถัดไป ซึ่งใช้เพื่อสร้างแอปคอนโซลในโฟลเดอร์ TestProject

  6. ที่พรอมท์คําสั่งเทอร์มินัล หากต้องการสร้างแอปพลิเคชันคอนโซลใหม่ในโฟลเดอร์ที่ระบุ ให้พิมพ์ dotnet new console -o ./CsharpProjects/TestProject แล้วกด Enter

    คําสั่ง .NET CLI นี้ใช้เทมเพลตโปรแกรม .NET เพื่อสร้างโครงการแอปพลิเคชันคอนโซล C# ใหม่ในตําแหน่งที่ตั้งโฟลเดอร์ที่ระบุ คําสั่งจะสร้างโฟลเดอร์ CsharpProjects และ TestProject ให้คุณ และใช้ TestProject เป็นชื่อของไฟล์ .csproj

  7. ในแผง EXPLORER ให้ขยายโฟลเดอร์ CsharpProjects

    คุณควรเห็นโฟลเดอร์ TestProject และแฟ้มสองแฟ้ม แฟ้มโปรแกรม C# ที่ชื่อว่า Program.cs และแฟ้มโครงการ C# ที่ชื่อว่า TestProject.csproj

  8. ในแผง EXPLORER หากต้องการดูไฟล์โค้ดของคุณในแผง ตัวแก้ไข ให้เลือก Program.cs

  9. ลบบรรทัดรหัสที่มีอยู่

    คุณจะใช้โครงการคอนโซล C# นี้เพื่อสร้าง สร้าง และเรียกใช้ตัวอย่างโค้ดในระหว่างโมดูลนี้

  10. ปิดแผงเทอร์มินัล

สร้างวิธีการ ด้วยพารามิเตอร์

ในงานนี้ คุณจะสร้างวิธีการที่ปรับเวลาตามกําหนดการให้กับโซนเวลา GMT อื่น เมธอด ควรยอมรับรายการของเวลา โซนเวลาปัจจุบัน และโซนเวลาใหม่ มาเริ่มต้นกันเลย!

  1. ป้อนรหัสต่อไปนี้ลงในตัวแก้ไขรหัส Visual Studio:

    int[] schedule = {800, 1200, 1600, 2000};
    
  2. หากต้องการสร้างวิธีการด้วยพารามิเตอร์ ให้ป้อนรหัสต่อไปนี้ในบรรทัดว่างใหม่:

    void DisplayAdjustedTimes(int[] times, int currentGMT, int newGMT) 
    {
    
    }
    

    โปรดสังเกตว่ามีการประกาศพารามิเตอร์คล้ายกับวิธีที่คุณประกาศตัวแปรโดยใช้ชนิดข้อมูลตามด้วยชื่อตัวแปร คุณสามารถใช้พารามิเตอร์ของชนิดข้อมูลใดก็ได้ เช่น string, bool, int, อาร์เรย์ และอื่น ๆ อีกมากมาย! หลายพารามิเตอร์ในเมธอดจะถูกคั่นด้วยจุลภาคเสมอ

  3. ป้อนรหัสต่อไปนี้ใน DisplayAdjustedTimes วิธีการ:

    int diff = 0;
    if (Math.Abs(newGMT) > 12 || Math.Abs(currentGMT) > 12)
    {
        Console.WriteLine("Invalid GMT");
    }
    

    สังเกตว่าคุณไม่จําเป็นต้องประกาศตัวแปร newGMT อย่างไร และ currentGMT เนื่องจากมีการประกาศตัวแปรเหล่านั้นในลายเซ็นของเมธอดแล้ว คุณยังไม่ต้องเตรียมใช้งานตัวแปรเนื่องจากเมธอด จะถือว่าตัวเรียกใส่อาร์กิวเมนต์เหล่านั้นด้วยค่าที่กําหนด

    ในขั้นตอนนี้ คุณสร้าง int diff เพื่อจัดเก็บความแตกต่างของเวลา จากนั้นตรวจสอบว่าค่า GMT ที่ระบุอยู่ระหว่าง -12 และ 12 หรือไม่ การใช้ Math.Abs ให้ค่าสัมบูรณ์ของตัวเลข แก่คุณ ดังนั้นค่า GMT จะไม่ถูกต้องถ้ามีค่ามากกว่า 12

  4. หากต้องการคํานวณความแตกต่างของเวลา ให้ DisplayAdjustedTimes อัปเดตวิธีการ ดังนี้:

    int diff = 0;
    if (Math.Abs(newGMT) > 12 || Math.Abs(currentGMT) > 12)
    {
        Console.WriteLine("Invalid GMT");
    }
    else if (newGMT <= 0 && currentGMT <= 0 || newGMT >= 0 && currentGMT >= 0) 
    {
        diff = 100 * (Math.Abs(newGMT) - Math.Abs(currentGMT));
    } 
    else 
    {
        diff = 100 * (Math.Abs(newGMT) + Math.Abs(currentGMT));
    }
    

    ในรหัสนี้คุณตรวจสอบเพื่อดูว่าคุณจําเป็นต้องเพิ่มหรือลบค่าสัมบูรณ์ของโซนเวลา GMT เพื่อรับความแตกต่างในหน่วยชั่วโมงหรือไม่ ถ้าค่า GMT ใช้เครื่องหมายเดียวกัน (ทั้งค่าบวกหรือค่าลบทั้งสอง) ผลต่างของชั่วโมงจะเท่ากับความแตกต่างระหว่างตัวเลขสองตัว หากค่า GMT มีเครื่องหมายตรงกันข้ามกัน ผลต่างจะเท่ากับผลรวมของตัวเลขสองตัว เนื่องจากชั่วโมงแสดงเป็นหลายร้อย คุณจึงคูณผลลัพธ์ด้วย 100

  5. เมื่อต้องการแสดงผลลัพธ์ ให้ป้อนรหัสต่อไปนี้ที่ส่วนท้ายของ DisplayAdjustedTimes วิธีการ:

    for (int i = 0; i < times.Length; i++) 
    {
        int newTime = (times[i] + diff) % 2400;
        Console.WriteLine($"{times[i]} -> {newTime}");
    }
    
  6. หากต้องการเรียกใช้วิธีการของคุณ ให้ป้อนรหัสต่อไปนี้หลังจาก int[] schedule ยืนยันตัวแปร:

    DisplayAdjustedTimes(schedule, 6, -6);
    

    โปรดสังเกตว่าทั้งตัวแปรและสัญพจน์สามารถจัดหาเป็นอาร์กิวเมนต์ไปยังเมธอด ได้ เมื่อใช้พารามิเตอร์ป้อนเข้า วิธีการ จะไม่ถูกจํากัดให้ใช้ค่าของตัวแปรส่วนกลาง

ตรวจสอบงานของคุณ

สําหรับงานนี้ คุณจะเรียกใช้แอปพลิเคชันของคุณจากเทอร์มินัลรวมและตรวจสอบว่ารหัสของคุณทํางานได้อย่างถูกต้อง มาเริ่มต้นกันเลย

  1. บันทึกงานของคุณโดยใช้ Ctrl + S หรือใช้เมนูไฟล์ของ Visual Studio Code

  2. หากจําเป็น ให้เปิดแผงเทอร์มินัลแบบรวมของ Visual Studio Code

    ในแผง EXPLORER หากต้องการเปิดเทอร์มินัลที่ตําแหน่งโฟลเดอร์ TestProject ของคุณ ให้คลิกขวาที่ TestProject จากนั้นเลือก เปิดในเทอร์มินัลแบบรวม

  3. ที่พร้อมท์คําสั่งเทอร์มินัล ให้ใส่ dotnet ทํางาน

  4. ตรวจสอบว่าโค้ดของคุณสร้างเอาต์พุตต่อไปนี้:

    800 -> 2000
    1200 -> 0
    1600 -> 400
    2000 -> 800
    

    หากรหัสของคุณแสดงผลลัพธ์ที่แตกต่างกัน คุณจะต้องตรวจสอบรหัสของคุณเพื่อค้นหาข้อผิดพลาดและทําการอัปเดต เรียกใช้รหัสอีกครั้งเพื่อดูว่าคุณได้แก้ไขปัญหาหรือไม่ อัปเดตและเรียกใช้โค้ดของคุณต่อจนกว่ารหัสของคุณจะสร้างผลลัพธ์ที่คาดหวัง

สรุป

นี่คือสิ่งที่คุณได้เรียนรู้เกี่ยวกับพารามิเตอร์จนถึงตอนนี้:

  • ข้อมูลสามารถส่งผ่านไปยังวิธีการในรูปแบบของพารามิเตอร์
  • มีการประกาศพารามิเตอร์ในลายเซ็นของเมธอด
  • พารามิเตอร์หลายรายการจะถูกคั่นด้วยเครื่องหมายจุลภาค
  • วิธีการสามารถยอมรับตัวแปรหรืออาร์กิวเมนต์สัญพจน์