คำถามติดแท็ก methods

เมธอดคือบล็อกของโค้ดที่ทำงานและเชื่อมโยงกับคลาสหรือวัตถุ มันเกี่ยวข้องกับแนวคิดที่ไม่ใช่เชิงวัตถุของฟังก์ชั่นและขั้นตอน

6
ใน Python ฉันควรใช้ฟังก์ชันแทนเมธอดเมื่อใด
Zen of Python ระบุว่าควรมีเพียงวิธีเดียวในการทำสิ่งต่างๆ แต่บ่อยครั้งที่ฉันประสบปัญหาในการตัดสินใจว่าจะใช้ฟังก์ชันเมื่อใดเทียบกับเมื่อใดควรใช้วิธีการ ลองดูตัวอย่างเล็กน้อย - วัตถุ ChessBoard สมมติว่าเราต้องการวิธีการบางอย่างเพื่อให้ได้การเคลื่อนไหวของกษัตริย์ตามกฎหมายทั้งหมดที่มีอยู่บนกระดาน เราเขียน ChessBoard.get_king_moves () หรือ get_king_moves (chess_board)? นี่คือคำถามที่เกี่ยวข้องบางส่วนที่ฉันดู: ทำไมหลามถึงใช้ 'วิธีวิเศษ'? มีเหตุผลที่สตริง Python ไม่มีเมธอดความยาวสตริงหรือไม่? คำตอบที่ฉันได้รับส่วนใหญ่สรุปไม่ได้: เหตุใด Python จึงใช้เมธอดสำหรับฟังก์ชันบางอย่าง (เช่น list.index ()) แต่ฟังก์ชันอื่น ๆ (เช่น len (รายการ)) เหตุผลสำคัญคือประวัติศาสตร์ ฟังก์ชั่นถูกใช้สำหรับการดำเนินการที่เป็นแบบทั่วไปสำหรับกลุ่มของประเภทและมีจุดมุ่งหมายเพื่อใช้งานได้แม้กระทั่งกับอ็อบเจ็กต์ที่ไม่มีเมธอดเลย (เช่นทูเปิล) นอกจากนี้ยังสะดวกที่จะมีฟังก์ชันที่สามารถนำไปใช้กับคอลเลกชันอสัณฐานได้อย่างง่ายดายเมื่อคุณใช้คุณสมบัติการทำงานของ Python (map (), apply () et al) ในความเป็นจริงการนำ len (), max (), …

4
Android: ฉันจะส่งพารามิเตอร์ไปยัง onPreExecute () ของ AsyncTask ได้อย่างไร
ฉันใช้AsyncTaskสำหรับการโหลดการดำเนินการที่ฉันใช้เป็นคลาสภายใน ในผมแสดงโต้ตอบโหลดซึ่งผมก็ซ่อนอีกครั้งในonPreExecute() onPostExecute()แต่สำหรับการโหลดบางอย่างฉันรู้ล่วงหน้าว่ามันจะเสร็จเร็วมากดังนั้นฉันจึงไม่ต้องการแสดงกล่องโต้ตอบการโหลด ฉันต้องการระบุสิ่งนี้ด้วยพารามิเตอร์บูลีนที่ฉันสามารถส่งผ่านไปได้onPreExecute()แต่ดูเหมือนว่าด้วยเหตุผลบางประการonPreExecute()ไม่ได้ใช้พารามิเตอร์ใด ๆ วิธีแก้ปัญหาที่ชัดเจนอาจเป็นการสร้างเขตข้อมูลสมาชิกใน AsyncTask ของฉันหรือในชั้นนอกซึ่งฉันจะต้องตั้งค่าก่อนการดำเนินการโหลดทุกครั้ง แต่ดูเหมือนจะไม่สวยหรูมากนัก มีวิธีที่ดีกว่านี้หรือไม่?


4
คีย์เวิร์ด“ get” ก่อนฟังก์ชันในคลาสคืออะไร
อะไรgetเฉลี่ยในชั้นเรียน ES6 นี้หรือไม่? ฉันจะอ้างอิงฟังก์ชันนี้ได้อย่างไร? ฉันควรใช้มันอย่างไร? class Polygon { constructor(height, width) { this.height = height; this.width = width; } get area() { return this.calcArea() } calcArea() { return this.height * this.width; } }

9
ฉันจะเรียกเมธอดที่มีชื่อแบบไดนามิกใน Javascript ได้อย่างไร
ฉันกำลังดำเนินการสร้าง JavaScript แบบไดนามิกซึ่งจะแทรกลงในหน้าเว็บขณะที่กำลังสร้าง จาวาสคริปต์จะใช้ในการเติมขึ้นอยู่กับตัวเลือกในอีกlistbox listboxเมื่อการเลือกlistboxมีการเปลี่ยนแปลงจะเรียกชื่อเมธอดตามค่าที่เลือกของlistbox. ตัวอย่างเช่น: Listbox1 ประกอบด้วย: Colours Shapes หากColoursถูกเลือกแล้วมันจะเรียกpopulate_Coloursวิธีการที่ populates listboxอื่น เพื่อชี้แจงคำถามของฉัน: ฉันจะpopulate_Coloursโทรใน JavaScript ได้อย่างไร


9
แทนที่เนื้อหาของวิธี C # แบบไดนามิก?
สิ่งที่ฉันต้องการทำคือเปลี่ยนวิธีการดำเนินการของ C # เมื่อมีการเรียกเพื่อให้ฉันสามารถเขียนสิ่งนี้ได้: [Distributed] public DTask<bool> Solve(int n, DEvent<bool> callback) { for (int m = 2; m < n - 1; m += 1) if (m % n == 0) return false; return true; } ในขณะรันไทม์ฉันต้องสามารถวิเคราะห์เมธอดที่มีแอตทริบิวต์ Distributed (ซึ่งฉันทำได้อยู่แล้ว) จากนั้นใส่โค้ดก่อนที่เนื้อหาของฟังก์ชันจะดำเนินการและหลังจากที่ฟังก์ชันกลับมา ที่สำคัญกว่านั้นคือฉันต้องสามารถทำได้โดยไม่ต้องแก้ไขโค้ดที่มีการเรียกใช้การแก้ปัญหาหรือเมื่อเริ่มต้นฟังก์ชัน (ในเวลาคอมไพล์การทำเช่นนั้นในเวลาทำงานเป็นวัตถุประสงค์) ในขณะนี้ฉันได้ลองใช้บิตของโค้ดนี้แล้ว(สมมติว่า t เป็นประเภทที่มีการแก้ปัญหาและ m คือ MethodInfo ของการแก้ปัญหา) : …
114 c#  methods  assemblies  cil  swap 

8
คำหลักใหม่ในลายเซ็นวิธี
ในขณะที่ทำการปรับโครงสร้างใหม่ฉันได้สร้างวิธีการดังตัวอย่างด้านล่าง ประเภทข้อมูลได้รับการเปลี่ยนแปลงเพื่อความเรียบง่าย ก่อนหน้านี้ฉันมีคำสั่งมอบหมายเช่นนี้: MyObject myVar = new MyObject(); มันถูกปรับโครงสร้างใหม่โดยบังเอิญ: private static new MyObject CreateSomething() { return new MyObject{"Something New"}; } นี่เป็นผลมาจากข้อผิดพลาดในการตัด / วางในส่วนของฉัน แต่newคำหลักในprivate static newถูกต้องและคอมไพล์ คำถาม : อะไรคือnewคำสำคัญมีความหมายอย่างไรในลายเซ็นของวิธีการ? ฉันคิดว่ามันเป็นสิ่งที่แนะนำใน C # 3.0? สิ่งนี้แตกต่างจากoverrideอย่างไร?
113 c#  methods  keyword 

4
การใช้ @see ใน JavaDoc?
ฉันจะใช้@seeเมื่อจัดการกับ JavaDocs เมื่อใด การใช้งานคืออะไร? ตัวอย่างเช่นถ้าMethodAโทรMethodBแล้วฉันจะต้องใส่@seeในMethodB's Javadoc และการอ้างอิงMethodAเพราะเห็นว่าเป็นสิ่งที่เรียกว่าหรือฉันต้องใส่การอ้างอิงถึงMethodBจากMethodAเพราะมันเรียกมันว่า ฉันได้อ่านเนื้อหาเกี่ยวกับ@seeบนเว็บไซต์ Oracle และดูเหมือนว่าสำหรับฉันจะคลุมเครืออย่างไม่น่าเชื่อมันบอกว่า "ดูด้วย" แต่ไม่ได้หมายความว่าจริงๆ!
110 java  methods  javadoc 

6
เหตุใดวิธีการเชื่อมต่อ C # จึงไม่ประกาศว่าเป็นนามธรรมหรือเสมือน
วิธีการ C # ในอินเทอร์เฟซถูกประกาศโดยไม่ใช้virtualคีย์เวิร์ดและแทนที่ในคลาสที่ได้รับโดยไม่ต้องใช้overrideคีย์เวิร์ด มีเหตุผลนี้หรือไม่? ฉันคิดว่ามันเป็นเพียงความสะดวกทางภาษาและเห็นได้ชัดว่า CLR รู้วิธีจัดการสิ่งนี้ภายใต้ฝาครอบ (วิธีการไม่ใช่เสมือนตามค่าเริ่มต้น) แต่มีเหตุผลทางเทคนิคอื่น ๆ หรือไม่? นี่คือ IL ที่คลาสที่ได้รับสร้างขึ้น: class Example : IDisposable { public void Dispose() { } } .method public hidebysig newslot virtual final instance void Dispose() cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: nop IL_0001: ret } …

10
เรียกใช้ฟังก์ชันภายในเมธอด Class?
ฉันพยายามหาวิธีการทำสิ่งนี้ แต่ฉันไม่ค่อยแน่ใจว่าจะทำอย่างไร นี่คือตัวอย่างของสิ่งที่ฉันพยายามทำ: class test { public newTest(){ function bigTest(){ //Big Test Here } function smallTest(){ //Small Test Here } } public scoreTest(){ //Scoring code here; } } นี่คือส่วนที่ฉันมีปัญหาฉันจะเรียก bigTest () ได้อย่างไร
108 php  function  class  methods  call 

5
การประกาศวิธีการควรเข้ากันได้กับวิธีการหลักใน PHP
มาตรฐานที่เข้มงวด: การประกาศ childClass :: customMethod () ควรเข้ากันได้กับ parentClass :: customMethod () สาเหตุที่เป็นไปได้ของข้อผิดพลาดนี้ใน PHP คืออะไร? ฉันจะหาข้อมูลเกี่ยวกับความหมายของการใช้งานร่วมกันได้ที่ไหน

21
ควรใช้วิธี C # ที่ * สามารถ * คงที่ได้หรือไม่? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา วิธีการ C # ที่สามารถคงที่ควรเป็นแบบคงที่หรือไม่? วันนี้เราคุยกันเรื่องนี้และฉันก็อยู่ในรั้ว ลองนึกภาพคุณมีวิธีการยาว ๆ ที่คุณปรับโครงสร้างใหม่ไม่กี่บรรทัด วิธีการใหม่อาจใช้ตัวแปรท้องถิ่นสองสามตัวจากเมธอดหลักและส่งคืนค่า ซึ่งหมายความว่าอาจเป็นแบบคงที่ คำถามคือควรเป็นแบบคงที่หรือไม่? ไม่คงที่ตามการออกแบบหรือทางเลือกเพียงเพราะธรรมชาติของมันไม่ได้อ้างอิงค่าอินสแตนซ์ใด ๆ
104 c#  static  methods 

5
ชื่อวิธีการรับข้อมูล [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ คำเตือน:นี่เป็นคำถาม / การสนทนาที่ไม่ร้ายแรงมากนักที่ฉันโพสต์ ... แต่ฉันยินดีที่จะพนันว่านักพัฒนาส่วนใหญ่ได้ไตร่ตรอง "ปัญหา" นี้แล้ว ... อยากได้ความคิดเห็นอื่น ๆ เกี่ยวกับหลักการตั้งชื่อสำหรับวิธีการที่ไปและได้ข้อมูลจากที่ไหนสักแห่งและส่งคืนมา ... ชื่อเมธอดส่วนใหญ่ค่อนข้างง่ายและชัดเจน ... SaveEmployee (), DeleteOrder (), UploadDocument () แน่นอนว่าในชั้นเรียนคุณมักจะใช้รูปแบบสั้น ๆ ... บันทึก () ลบ () อัปโหลด () ตามลำดับ อย่างไรก็ตามฉันต่อสู้กับการดำเนินการครั้งแรกมาโดยตลอด ... วิธีรับข้อมูล ดูเหมือนว่าสำหรับทุกโครงการฉันจะต้องกระโดดไปมาระหว่างรูปแบบการตั้งชื่อที่แตกต่างกันเพราะฉันไม่เคยพอใจกับข้อสุดท้ายที่ฉันใช้ เท่าที่ฉันสามารถบอกได้ว่านี่คือความเป็นไปได้ -> GetBooks () FetchBooks () ดึงหนังสือ …

3
ค้นหา # รายการที่เกิดขึ้นของอักขระในสตริงใน Ruby
ฉันกำลังมองหาเมธอด Ruby (1.9 ... ) ที่สามารถช่วยฉันหาจำนวนครั้งที่เกิดขึ้นของอักขระในสตริง ฉันกำลังมองหาเหตุการณ์ทั้งหมดไม่ใช่แค่เหตุการณ์แรก ตัวอย่างเช่น: "Melanie is a noob" มีอักษร "a" เกิดขึ้นสองครั้ง ฉันจะใช้วิธี Ruby เพื่อค้นหาสิ่งนี้ได้อย่างไร? ฉันใช้Ruby-doc.orgเป็นข้อมูลอ้างอิงและเป็นscanวิธีที่String: classทำให้ฉันสะดุดตา scanถ้อยคำที่เป็นบิตยากสำหรับผมที่จะเข้าใจดังนั้นผมจึงไม่เข้าใจจริงๆแนวคิดของ แก้ไข: ฉันสามารถแก้ปัญหานี้ได้โดยใช้scanไฟล์. ฉันแบ่งปันในวิดีโอว่าฉันประสบความสำเร็จได้อย่างไร
103 ruby  string  methods 

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