คุณไม่ควรเรียกการแยกวิเคราะห์เมื่อเห็นcallSomething()
(ฉันเข้าใจว่าคุณหมายถึงcallSomething
มากกว่าdoSomething
) ความแตกต่างระหว่างa
และcallSomething
เป็นที่หนึ่งคือการกำหนดวิธีการในขณะที่อื่น ๆ คือการเรียกวิธีการ
เมื่อคุณเห็นคำนิยามใหม่คุณจะต้องทำการตรวจสอบที่เกี่ยวข้องเพื่อให้แน่ใจว่าคุณสามารถเพิ่มคำจำกัดความดังกล่าวได้ดังนั้น:
- ตรวจสอบว่าไม่มีฟังก์ชั่นที่มีลายเซ็นเดียวกัน
- ตรวจสอบให้แน่ใจว่ามีการประกาศวิธีการในขอบเขตที่เหมาะสม (เช่นสามารถประกาศวิธีการภายในการประกาศวิธีการอื่นได้หรือไม่)
ถ้าผ่านการตรวจสอบเหล่านี้คุณสามารถเพิ่มลงในแผนที่ของคุณและเริ่มตรวจสอบเนื้อหาของวิธีการนั้น
เมื่อคุณพบวิธีการโทรcallSomething()
คุณควรทำการตรวจสอบต่อไปนี้:
- ไม่
callSomething
อยู่ในแผนที่ของคุณหรือไม่
- มันถูกเรียกอย่างถูกต้อง (จำนวนข้อโต้แย้งตรงกับลายเซ็นที่คุณพบ)?
- ข้อโต้แย้งนั้นใช้ได้หรือไม่ (หากใช้ชื่อตัวแปรพวกเขาจะประกาศหรือไม่สามารถเข้าถึงได้ในขอบเขตนี้หรือไม่)
- สามารถโทรหาบางสิ่งจากที่ที่คุณอยู่ (เป็นส่วนตัวสาธารณะได้รับการคุ้มครองหรือไม่)?
หากคุณพบว่าcallSomething()
ไม่เป็นไร ณ จุดนี้สิ่งที่คุณต้องการจะทำจริง ๆ ขึ้นอยู่กับว่าคุณต้องการที่จะเข้าใกล้มันอย่างไร เมื่อพูดอย่างเคร่งครัดเมื่อคุณรู้ว่าการโทรดังกล่าวไม่เป็นไรในตอนนี้คุณสามารถบันทึกชื่อของเมธอดและอาร์กิวเมนต์ได้โดยไม่ต้องลงรายละเอียดเพิ่มเติม เมื่อคุณเรียกใช้โปรแกรมของคุณคุณจะเรียกใช้เมธอดด้วยอาร์กิวเมนต์ที่คุณควรมีในขณะทำงาน
ถ้าคุณต้องการที่จะไปต่อคุณสามารถบันทึกไม่เพียง แต่สตริง แต่ลิงค์ไปยังวิธีการที่เกิดขึ้นจริง นี่จะมีประสิทธิภาพมากกว่า แต่ถ้าคุณต้องจัดการหน่วยความจำมันอาจทำให้สับสนได้ ฉันอยากจะแนะนำให้คุณยึดสายไว้ในตอนแรก หลังจากนั้นคุณสามารถลองปรับให้เหมาะสม
โปรดทราบว่าทั้งหมดนี้ถือว่าคุณได้เพิ่มโปรแกรมของคุณซึ่งหมายความว่าคุณได้รับรู้โทเค็นทั้งหมดในโปรแกรมของคุณและรู้ว่าพวกเขาคืออะไร นั่นไม่ได้เป็นการบอกว่าคุณรู้ว่าพวกเขาเข้ากันได้ดีหรือไม่ซึ่งเป็นขั้นตอนการแยกวิเคราะห์ หากคุณยังไม่ทราบว่าโทเค็นคืออะไรฉันขอแนะนำให้คุณมุ่งเน้นไปที่การรับข้อมูลก่อนเป็นอันดับแรก
ฉันหวังว่าจะช่วย! ยินดีต้อนรับสู่โปรแกรมเมอร์ SE!