แยกวิธีไปยังอินเทอร์เฟซที่มีอยู่แล้วด้วย ReSharper


101

ฉันกำลังเพิ่มเมธอดใหม่ในคลาสที่ใช้อินเทอร์เฟซและฉันต้องการใช้การรีแฟคเตอร์ "Extract Interface" และเพิ่มเมธอดลงในอินเทอร์เฟซ แต่ดูเหมือนว่า ReSharper ไม่รองรับการเพิ่มลายเซ็นวิธีการในอินเทอร์เฟซที่มีอยู่แล้ว

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

คำตอบ:


193

Ctrl + Shift + R เพื่อเข้าสู่เมนู refactoring จากนั้นเลือกPull Members Up ...

คุณสามารถเลือกอินเทอร์เฟซที่คุณต้องการเพิ่มการประกาศและเลือกแต่ละวิธีที่คุณต้องการเพิ่มลงในอินเทอร์เฟซ

ต้องรัก Resharper! ;-)


5
อ๊าก! ฉันไม่ได้ลองใช้ตัวเลือกนั้นเพราะฉันคิดว่ามันเกี่ยวข้องกับคลาสพื้นฐานที่สืบทอดมาเท่านั้น ฉันสามารถเดิมพันได้ว่า Extract Interface เป็นตัวเลือกที่ถูกต้อง ... ยังไงก็ตามขอบคุณ!
Johan Danforth

2
ใช่ฉันมีประสบการณ์เดียวกันทุกประการ Extract Interface ดูเหมือนเป็นตัวเลือกที่ใช้งานง่ายที่สุด แต่เดี๋ยวก่อนอย่างน้อยเราก็มีวิธีที่จะบรรลุผลลัพธ์ที่ต้องการ :-)
Russell Giddings

ฉันไม่เห็นว่ามันใช้งานได้หรือมีอยู่ใน ReSharper เวอร์ชันใหม่
RJN

มันยังใช้งานได้ ... แต่ไม่สามารถตรวจพบอินเทอร์เฟซที่มีอยู่และใส่เมธอดใหม่เข้าไปได้
Ingweland

@RJN ตรวจสอบให้แน่ใจว่าคลาสที่คุณอยู่ได้ใช้อินเทอร์เฟซแล้ว
Greg Quinn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.