4
เป็นการปฏิบัติที่ไม่ถูกต้องหรือไม่ที่จะใช้พารามิเตอร์วิธีการซ้ำ
มีบางครั้งที่ฉันจะต้องแก้ไขค่าที่ส่งผ่านไปยังเมธอดจากภายในเมธอดเอง ตัวอย่างจะทำให้บริสุทธิ์สตริงเช่นวิธีนี้ที่นี่: void SanitizeName(string Name) { Name = Name.ToUpper(); //now do something here with name } สิ่งนี้ไม่เป็นอันตรายอย่างNameแท้จริงเนื่องจากอาร์กิวเมนต์ไม่ได้ถูกส่งผ่านโดยการอ้างอิง อย่างไรก็ตามถ้าด้วยเหตุผลบางอย่างผู้พัฒนาในอนาคตตัดสินใจที่จะให้ค่าทั้งหมดผ่านโดยอ้างอิงการฆ่าล้างของสตริงจะส่งผลกระทบต่อค่านอกวิธีการที่อาจมีผลเป็นอันตราย ดังนั้นแทนที่จะกำหนดใหม่ให้กับข้อโต้แย้งตัวเองฉันมักจะสร้างสำเนาท้องถิ่นเช่น: void SanitizeName(string Name) { var SanitizedName = Name.ToUpper(); //now do something here with name } สิ่งนี้ทำให้มั่นใจได้ว่าการเปลี่ยนแปลงค่าที่ส่งผ่านจะไม่ส่งผลกระทบต่อการดำเนินการด้านนอกวิธีการ แต่ฉันสงสัยว่าฉันกำลังหวาดระแวงเกี่ยวกับเรื่องนี้มากเกินไป