C # วิธีการที่ไม่ระบุชื่อ
เราได้กล่าวแล้วเป็นวิธีที่ผู้ร่วมประชุมที่มีป้ายกำกับเดียวกันสำหรับการอ้างอิง ในคำอื่น ๆ ที่คุณสามารถใช้วัตถุตัวแทนสามารถอ้างอิงได้โดยวิธีการโทรของผู้ร่วมประชุม
วิธีการที่ไม่ระบุชื่อ (วิธีการที่ไม่ระบุชื่อ) เพื่อให้การป้องกันรหัสผ่านเป็นเทคโนโลยีพารามิเตอร์ของผู้ร่วมประชุมวิธีการที่ไม่ระบุชื่อไม่ได้เป็นเพียงชื่อของวิธีหลัก
ในวิธีการที่ไม่ระบุชื่อที่คุณไม่จำเป็นต้องระบุประเภทผลตอบแทนมันเป็นคำสั่งกลับภายในร่างกายวิธีการอนุมาน
เขียนไวยากรณ์วิธีการที่ไม่ระบุชื่อ
วิธีการที่ไม่ระบุชื่อโดยการสร้างคำหลักเช่นตัวแทนไปประกาศตัวแทนตัวอย่างเช่น:
มอบหมายโมฆะ NumberChanger (int n); ... NumberChanger NC = ผู้ร่วมประชุม (int x) { Console.WriteLine ( "วิธีที่ไม่ประสงค์ออกนาม: {0}", x); };
การป้องกันรหัสConsole.WriteLine ( "วิธีที่ไม่ประสงค์ออกนาม: {0}", x) เป็นเรื่องของวิธีการที่ไม่ระบุชื่อ
ผู้แทนสามารถเรียกโดยวิธีการที่ไม่ระบุชื่อที่จะถูกเรียกโดยการตั้งชื่อวิธีคือโดยการส่งผ่านพารามิเตอร์กับวิธีการผู้รับมอบวัตถุ
ตัวอย่างเช่น:
NC (10);
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงแนวคิดของวิธีการที่ไม่ระบุชื่อ:
การใช้ระบบ มอบหมายโมฆะ NumberChanger (int n); DelegateAppl namespace { ระดับ TestDelegate { int NUM คงที่ = 10; ประชาชนเป็นโมฆะคง AddNum (int P) { NUM + = p; Console.WriteLine ( "ชื่อวิธีการ: {0}" NUM); } โมฆะสาธารณะคง MultNum (int Q) { NUM * = Q; Console.WriteLine ( "ชื่อวิธีการ: {0}" NUM); } int สาธารณะคง getNum () { กลับ NUM; } เป็นโมฆะคง main (String args []) { // ใช้วิธีการที่ไม่ระบุชื่อในการสร้างอินสแตนซ์ของผู้รับมอบสิทธิ์ NumberChanger NC = ผู้ร่วมประชุม (int x) { Console.WriteLine ( "วิธีที่ไม่ประสงค์ออกนาม: {0}", x); }; // เรียกวิธีการใช้ที่ไม่ระบุชื่อผู้รับมอบสิทธิ์ NC (10); // ใช้วิธีการเสนอชื่อให้เป็นผู้รับมอบสิทธิ์ instantiate NC = new NumberChanger (AddNum); // การใช้ชื่อตัวแทน NC วิธีการอุทธรณ์ (5) // การใช้วิธีการตั้งชื่ออีกครั้งเพื่อให้ผู้ร่วมประชุม instantiate NC = new NumberChanger (MultNum); // การใช้ชื่อตัวแทน NC วิธีการอุทธรณ์ (2); Console.ReadKey (); } } }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
วิธีการที่ไม่ระบุชื่อ: 10 ตั้งชื่อวิธีการ: 15 ตั้งชื่อวิธีการ: 30