ทางออกที่ดีที่สุดคือเห็นได้ชัดว่าไม่ใช่ความคิดเห็นของคุณ ความคิดเห็นแบบซ้อนมักเป็นสัญญาณว่าคุณกำลังใช้ความคิดเห็นที่ไม่ถูกต้อง ตัวอย่างที่พบบ่อยที่สุดคือรหัสใส่ความคิดเห็นที่มีความคิดเห็นอยู่และการแก้ไขคือการลบรหัสแทนการแสดงความคิดเห็น
ดังกล่าวว่าภาษาการเขียนโปรแกรมจำนวนมากมีไวยากรณ์ความคิดเห็นมากกว่าหนึ่งประเภทและคุณสามารถใช้ความจริงนี้เพื่อซ้อนอย่างน้อยหนึ่งระดับ ตัวอย่างเช่นใน Java:
/* This is commented out!
Foo.bar.baz();
// And now for something completely different...
Quux.runWith(theMoney);
*/
นอกจากนี้ในหลายภาษาความคิดเห็นอย่างน้อยหนึ่งประเภทนั้นเป็นแบบซ้อนได้ ในภาษาที่เหมือนกับ C ความคิดเห็นของบรรทัดภายในความคิดเห็นของบรรทัดจะถูกละเว้น:
// some_commented_out(code);
// // This is a comment inside the comment!
// // Still inside the nested comment.
// some_more_code_in(outer_comment);
IDEs ส่วนใหญ่สนับสนุนการแสดงความคิดเห็นบล็อกทั้งหมดของรหัสที่มีความคิดเห็นสายในการกระทำเดียวและพวกเขาจัดการสไตล์การแสดงความคิดเห็นชนิดนี้ได้อย่างถูกต้อง ตัวอย่างเดียวกันใน Python:
# some_commented_out(code)
# # This is a comment inside the comment!
# # Still inside the nested comment.
# some_more_code_in(outer_comment)
บ่อยครั้งที่การเข้ารหัสมาตรฐานสำหรับโปรเจ็กต์หนึ่งมีกฎเกี่ยวกับสไตล์ความคิดเห็นที่จะใช้เมื่อ; การประชุมทั่วไปคือการใช้ความคิดเห็นที่ถูกบล็อก ( /* */
) สำหรับวิธีการและเอกสารประกอบชั้นเรียนและความคิดเห็นแบบอินไลน์ ( //
) สำหรับข้อสังเกตภายในเนื้อความของวิธีการและเช่น:
/**
* Helper class to store Foo objects inside a bar.
*/
public class Foobar {
/**
* Stores a Foo in this Foobar's bar, unless the bar already contains
* an equivalent Foo.
* Returns the number of Foos added (always 0 or 1).
*/
public int storeFoo(Foo foo) {
// Don't add a foo we already have!
if (this.bar.contains(foo)) {
return 0;
}
// OK, we don't have this foo yet, so we'll add it.
this.bar.append(foo);
return 1;
}
}
ด้วยสไตล์ดังกล่าวจึงไม่น่าเป็นไปได้ที่คุณจะต้องซ้อน/* */
ความคิดเห็น (ถ้าคุณต้องปิดใช้งานเมธอดหรือคลาสทั้งหมดเป็นการชั่วคราว และ//
ความคิดเห็นทำรังอย่างน้อยด้วยความช่วยเหลือเล็กน้อยจาก IDE ของคุณ
สุดท้ายเพื่อปิดการใช้งานรหัสคุณมีตัวเลือกอื่น ๆ ในภาษาการเขียนโปรแกรมจำนวนมาก ตัวอย่างเช่นใน C คุณสามารถใช้ประโยชน์จากตัวประมวลผลล่วงหน้า:
this_is(activated);
#if 0
this_is(!activated);
/* Comments inside this block don't really nest, they are simply removed
along with the rest of the block! */
#endif
ในภาษาแบบไดนามิกคุณสามารถใช้if
คำสั่งปกติแทน:
<?php
if (0) {
// This should never run...
some_stuff_that_should_never_run();
}
อย่างไรก็ตามไม่เหมือนตัวอย่าง CPP กลยุทธ์นี้ต้องการไฟล์ต้นฉบับโดยรวมว่ามีความถูกต้องทางไวยากรณ์ดังนั้นจึงไม่ยืดหยุ่นเท่าที่ควร
และสุดท้ายมีภาษาอย่างน้อยบางภาษาที่อนุญาตให้มีความคิดเห็นซ้อนกัน ในกรณีที่คุณสนใจ, วิกิพีเดียมีกราฟเปรียบเทียบที่ดี