วิธีคืนค่าหลายค่าจากผู้โทรใน C #

Withi Khun Kha Hlay Kha Cak Phu Thor Ni C



เมื่อทำงานกับ C# อาจมีสถานการณ์ที่ต้องคืนค่าหลายค่าจากเมธอดหนึ่งไปยังผู้เรียก กรณีนี้อาจเกิดขึ้นได้ทั่วไปเมื่อต้องจัดการกับข้อมูลหรือการคำนวณที่ซับซ้อน และในบทความนี้ เราจะสำรวจเทคนิคทั่วไปบางส่วนในการคืนค่าหลายค่าใน C#

1: วิธีการคืนค่าหลายค่าให้กับผู้เรียกเมธอดใน C# โดยใช้พารามิเตอร์

อีกวิธีหนึ่งในการคืนค่าหลายค่าใน C# คือการใช้พารามิเตอร์ out และในกรณีนั้นพารามิเตอร์ out คือตัวแปรที่ส่งผ่านไปยังเมธอดโดยการอ้างอิง และสามารถใช้เพื่อส่งคืนค่าจากเมธอด นี่คือตัวอย่าง:







ใช้ระบบ;

โปรแกรมชั้นเรียนสาธารณะ
{
โมฆะสาธารณะคงหลัก ( )
{
นานาชาติ [ ] ตัวเลข = { 3 , 1 , 4 , 1 , 5 , 9 , 2 , 6 , 5 , 3 } ;
int นาที สูงสุด;
GetMinMax ( ตัวเลข ออกนาที ออกสูงสุด ) ;
Console.WriteLine ( $ 'ต่ำสุด: {นาที}, สูงสุด: {สูงสุด}' ) ;
}

โมฆะคงที่สาธารณะ GetMinMax ( นานาชาติ [ ] ตัวเลข out int min, out int max )
{
นาที = ตัวเลข [ 0 ] ;
สูงสุด = ตัวเลข [ 0 ] ;

สำหรับ ( int ฉัน = 1 ; ฉัน < ตัวเลขความยาว; ฉัน ++ )
{
ถ้า ( ตัวเลข [ ฉัน ] < นาที )
{
นาที = ตัวเลข [ ฉัน ] ;
}
ถ้า ( ตัวเลข [ ฉัน ] > สูงสุด )
{
สูงสุด = ตัวเลข [ ฉัน ] ;
}
}
}
}


ในเมธอด GetMinMax นี้ใช้อาร์เรย์จำนวนเต็มเป็นอินพุตพร้อมกับพารามิเตอร์ขาออกสองตัวสำหรับ min และ max คีย์เวิร์ด out ใช้เพื่อระบุว่าตัวแปรเหล่านี้จะถูกใช้เพื่อเก็บค่าเอาต์พุตจากเมธอด



ภายในเมธอด ตัวแปร min และ max จะเริ่มต้นเป็นค่าแรกในอาร์เรย์อินพุต จากนั้นเมธอดจะวนซ้ำค่าที่เหลือในอาร์เรย์ อัปเดตตัวแปร min และ max ตามความจำเป็นตามค่าที่พบ



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





การใช้คีย์เวิร์ด out เพื่อส่งคืนค่าหลายค่าอาจเป็นเทคนิคที่มีประโยชน์ในสถานการณ์ที่คุณต้องส่งคืนค่ามากกว่าหนึ่งค่าจากเมธอดหนึ่งๆ อย่างไรก็ตาม เป็นที่น่าสังเกตว่าการใช้พารามิเตอร์ out อาจทำให้โค้ดอ่านและเข้าใจได้ยากขึ้น โดยเฉพาะอย่างยิ่งเมื่อต้องจัดการกับโค้ดที่ซับซ้อนมากขึ้น และโดยทั่วไปแล้วควรใช้เทคนิคนี้เท่าที่จำเป็นและควรใช้เท่าที่จำเป็นเท่านั้น



2: วิธีการคืนค่าหลายค่าให้กับผู้เรียกเมธอดใน C# โดยใช้คลาสแบบกำหนดเอง

วิธีที่สามในการคืนค่าหลายค่าใน C# คือการใช้คลาสแบบกำหนดเองและสร้างคลาสที่มีคุณสมบัติหรือฟิลด์สำหรับแต่ละค่าที่คุณต้องการส่งคืน จากนั้นส่งคืนอินสแตนซ์ของคลาสจากเมธอดของคุณ นี่คือตัวอย่าง:

ใช้ระบบ;

เนมสเปซ MyNamespace
{
MinMaxResult คลาสสาธารณะ
{
int สาธารณะขั้นต่ำ { รับ; ชุด ; }
int สาธารณะสูงสุด { รับ; ชุด ; }
}
MinMaxCalculator คลาสคงที่สาธารณะ
{
MinMaxResult GetMinMax แบบคงที่สาธารณะ ( นานาชาติ [ ] ตัวเลข )
{
int นาที = ตัวเลข [ 0 ] ;
int max = ตัวเลข [ 0 ] ;
สำหรับ ( int ฉัน = 1 ; ฉัน < ตัวเลขความยาว; ฉัน ++ )
{
ถ้า ( ตัวเลข [ ฉัน ] < นาที )
{
นาที = ตัวเลข [ ฉัน ] ;
}
ถ้า ( ตัวเลข [ ฉัน ] > สูงสุด )
{
สูงสุด = ตัวเลข [ ฉัน ] ;
}
}
กลับ ใหม่ MinMaxResult { ต่ำสุด = นาที, สูงสุด = สูงสุด } ;
}
}
โปรแกรมชั้นเรียน
{
โมฆะคงที่หลัก ( สตริง [ ] หาเรื่อง )
{
นานาชาติ [ ] ตัวเลข = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } ;
ผลลัพธ์ MinMaxResult = MinMaxCalculator.GetMinMax ( ตัวเลข ) ;
Console.WriteLine ( $ 'ต่ำสุด: {result.Min}, สูงสุด: {result.Max}' ) ;
}
}
}


รหัส C# นี้กำหนดเนมสเปซชื่อ “MyNamespace” ซึ่งมีสองคลาส: “MinMaxResult” และ “MinMaxCalculator”

คลาส “MinMaxResult” มีสองคุณสมบัติ: “Min” และ “Max” ซึ่งใช้เพื่อเก็บค่าต่ำสุดและสูงสุดตามลำดับ

คลาส “MinMaxCalculator” ถูกประกาศเป็นแบบสแตติกและมีเมธอดเดียวชื่อ “GetMinMax” ซึ่งใช้อาร์เรย์ของจำนวนเต็มเป็นอินพุต วิธีนี้ใช้การวนซ้ำเพื่อวนซ้ำผ่านอาร์เรย์และค้นหาค่าต่ำสุดและค่าสูงสุด จากนั้นจะสร้างอินสแตนซ์ใหม่ของคลาส 'MinMaxResult' และเริ่มต้นคุณสมบัติ 'Min' และ 'Max' ด้วยค่าที่พบก่อนที่จะส่งกลับเป็นเอาต์พุตของเมธอด

สุดท้าย คลาส “Program” มีเมธอดแบบสแตติกชื่อ “Main” ซึ่งเป็นจุดเริ่มต้นของโปรแกรม และในเมธอดนี้ อาร์เรย์ของจำนวนเต็มจะถูกเตรียมใช้งานและส่งผ่านไปยังเมธอด “GetMinMax” ของคลาส “MinMaxCalculator” เพื่อรับ ค่าต่ำสุดและสูงสุด

บทสรุป

การส่งคืนค่าหลายค่าไปยังผู้เรียกใช้เมธอดใน C# อาจเป็นคุณสมบัติที่สำคัญเมื่อทำงานกับข้อมูลหรือการคำนวณที่ซับซ้อน ด้วยการทำความเข้าใจเทคนิคต่างๆ ที่มีอยู่สำหรับการส่งคืนค่าหลายค่า เช่น พารามิเตอร์ขาออก และคลาสที่กำหนดเอง คุณจะสามารถเลือกแนวทางที่ดีที่สุดสำหรับสถานการณ์เฉพาะของคุณได้ การใช้เทคนิคเหล่านี้จะทำให้โค้ดของคุณมีประสิทธิภาพมากขึ้น อ่านง่ายขึ้น และปรับปรุงประสิทธิภาพของแอปพลิเคชันของคุณได้ในที่สุด