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

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

5
หลักการตั้งชื่อที่ดีสำหรับประเภททั่วไปใน C # คืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันตัดสินใจถามคำถามนี้ที่นี่แทนที่จะเป็นแบบล้นสแต็กเพราะมันค่อนข้างเป็นอัตนัย ใน C # ปกติฉันเห็นประเภททั่วไปที่มีชื่อไม่ดี โดยทั่วไปมักใช้ "T" แต่ไม่ใช่ชื่อที่สื่อความหมายด้วยตัวเอง ตัวอย่างเช่น: class Fruit<T> { T fruit; } ในขณะที่นี่เป็นวิธีการทั่วไปใครจะแนะนำต่อต้านนี้ และถ้าเป็นเช่นนั้นแผนการตั้งชื่อที่สมเหตุสมผลจะเป็นประเภททั่วไปในบริบทของ C # สำหรับฟังก์ชันและคลาสทั่วไป ในตัวอย่างก่อนหน้านี้สมมติว่าประเภททั่วไปTมักจะต้องเป็นชนิดของผลไม้เช่นหรือApple OrangeประเภทTต้องทำให้ชัดเจนว่าเป็นผลไม้ชนิดหนึ่งดังนั้นอาจเป็นชื่อที่ดีกว่าFruitTypeดังนั้นเราจึงจบลงด้วย: class Fruit<FruitType> { FruitType fruit; } นี่เป็นเพียงเพื่อให้พวกคุณได้คิดในสิ่งที่ฉันกำลังมอง "กฎง่ายๆ" ที่ยอมรับได้สำหรับปัญหานี้คืออะไร
16 c#  naming  generics 

6
“ A”,“ an” และ“ the” ในชื่อเมธอดและฟังก์ชัน: คุณใช้อะไร? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันแน่ใจว่าพวกเราหลายคนเคยเห็นชื่อวิธีการเช่นนี้ในจุดหนึ่งหรืออื่น ๆ : UploadTheFileToTheServerPlease CreateATemporaryFile WriteTheRecordToTheDatabase ResetTheSystemClock นั่นคือชื่อวิธีการที่ถูกต้องตามหลักไวยากรณ์ประโยคภาษาอังกฤษและรวมถึงคำพิเศษเพื่อให้พวกเขาอ่านเหมือนร้อยแก้ว โดยส่วนตัวฉันไม่ได้เป็นแฟนตัวยงของชื่อวิธีการ "ตามตัวอักษร" และชอบที่จะประสบความสำเร็จในขณะที่ยังคงชัดเจนที่สุด สำหรับฉันแล้วคำเช่น "a", "an" และ "the" แค่ดูธรรมดา ๆ ในชื่อเมธอดและทำให้ชื่อเมธอดยาวโดยไม่จำเป็นโดยไม่ต้องเพิ่มอะไรที่มีประโยชน์จริงๆ ฉันต้องการชื่อวิธีการต่อไปนี้สำหรับตัวอย่างก่อนหน้านี้: UploadFileToServer CreateTemporaryFile WriteOutRecord ResetSystemClock จากประสบการณ์ของฉันนี่เป็นเรื่องธรรมดามากกว่าวิธีอื่นในการเขียนชื่อที่ยาวกว่า แต่ฉันได้เห็นทั้งสไตล์และอยากรู้อยากเห็นว่าความคิดของคนอื่นเป็นอย่างไรในสองแนวทางนี้ ดังนั้นคุณอยู่ใน "ชื่อเมธอดที่อ่านเหมือนร้อยแก้ว" หรือ "เมธอดชื่อที่พูดในสิ่งที่ฉันหมายถึง แต่อ่านออกมาดัง ๆ เช่นการแปลภาษาต่างประเทศเป็นภาษาอังกฤษที่ไม่ดี" ค่าย?

3
หลักการตั้งชื่อสำหรับฟังก์ชั่นการสั่งซื้อที่สูงขึ้น? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว มีแบบแผนการตั้งชื่อสำหรับฟังก์ชันคำสั่งซื้อที่สูงขึ้นหรือไม่? นั่นคือฟังก์ชันที่ส่งคืนฟังก์ชันอื่น ตัวอย่างใน Javascript: function onlyDivisibleBy(div) { // <-- higher order function return function (n) { return n % div === 0; } } var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.filter(onlyDivisibleBy(3)); // [0, 3, 6, 9] …

3
ฉันจะหลีกเลี่ยงการใช้ชื่อของตัวเองในตัวระบุแพ็คเกจหรือเนมสเปซของโครงการโอเพ่นซอร์สที่ฉันสร้างได้อย่างไร
ฉันพัฒนาไปมากในเวลาของตัวเอง โครงการเหล่านี้ที่ฉันทำมีทั้งหมดเพื่อความสนุกสนานและการเรียนรู้ (จนถึงตอนนี้) ฉันมักจะพัฒนา Java กับ Maven แต่ฉันก็รู้จักตะลุยใน. NET และ Python โครงการทั้งหมดที่ฉันทำงานเกี่ยวกับการอนุญาตให้ใช้งานโอเพ่นซอร์สแม้ว่าส่วนใหญ่จะไม่ได้อยู่ในที่เก็บรหัสสาธารณะใด ๆ การพัฒนา Java / Maven ต้องการให้ฉันใช้โครงสร้างที่ไม่ซ้ำกันgroupId(เช่น "com.mydomain") และpackageโครงสร้าง (ไดเรกทอรี) ที่ไม่ซ้ำกันซึ่งโดยทั่วไปจะมีการgroupIdพัฒนาในขณะที่. NET สนับสนุนเฉพาะnamespacesในการใช้packageแนวคิดแบบเดียวกันกับแนวคิดJava เพื่อให้แน่ใจว่ามีลักษณะเฉพาะฉันมักจะใช้ชื่อโดเมนของฉันกับส่วนที่กลับรายการ (เช่น "ca.jessewebb") ฉันเชื่อว่านี่เป็นวิธีปฏิบัติทั่วไป ฉันอยู่ในช่วงเริ่มต้นของการสร้างโปรเจ็กต์โอเพนซอร์สใหม่ Java / Maven (ลองเรียกมันว่า "newproj") และฉันต้องการที่จะวางมันบน GitHub ชื่อผู้ใช้ของฉันบน GitHub คือ "jessewebb" ดังนั้นนี้จะให้มันเหมือน https://github.com/jessewebb/newprojURL: ฉันไม่ต้องการรบกวนการลงทะเบียนชื่อโดเมน "newproj.com" ดังนั้นฉันจึงตัดสินใจใช้ "ca.jessewebb" และ "ca.jessewebb.newproj" เป็นgroupIdและpackageตามลำดับ มันเกิดขึ้นกับฉันว่าการมีตัวตนส่วนบุคคลของฉันในรหัสและเป็นส่วนหนึ่งของบ้านของโครงการ …

3
เสมือนจริงหรือนามธรรมสิ่งที่อยู่ในชื่อ?
ในขณะที่พูดคุยเกี่ยวกับคำถามเกี่ยวกับฟังก์ชั่นเสมือนจริงบน Stack Overflow ฉันสงสัยว่ามีการตั้งชื่ออย่างเป็นทางการสำหรับฟังก์ชั่นเสมือนจริง (นามธรรม) และไม่ใช่บริสุทธิ์หรือไม่ ฉันใช้วิกิพีเดียเป็นประจำสำหรับข้อมูลของฉันซึ่งระบุว่าฟังก์ชั่นเสมือนที่บริสุทธิ์และไม่บริสุทธิ์เป็นคำทั่วไป น่าเสียดายที่บทความไม่ได้สำรองไว้พร้อมกับที่มาหรือข้อมูลอ้างอิง เพื่ออ้างอิงคำตอบของ Jon Skeet กับคำตอบของฉันว่าบริสุทธิ์และไม่บริสุทธิ์เป็นคำทั่วไปที่ใช้: @ สตีเว่น: อืม ... เป็นไปได้ แต่ข้าเคยเห็นมันในบริบทของซีพลัสพลัสมาก่อน ฉันสงสัยว่าทุกคนที่พูดถึงพวกเขาน่าจะมีพื้นหลังเป็น C ++ :) คำนี้มาจากภาษา C ++ หรือเป็นคำนิยามหรือนำไปใช้เป็นภาษาแรกและเป็นศัพท์ทางวิทยาศาสตร์ที่ 'เป็นทางการ' หรือไม่ UPDATE: Frank Shearar ให้ลิงก์ไปยังคำอธิบายของSIMULA 67 Common Base Language (1970) อย่างเป็นประโยชน์ ภาษานี้ดูเหมือนว่าจะเป็นภาษาแรกที่จะแนะนำคำหลัก OO เป็นระดับ , วัตถุและยังเสมือนเป็นแนวคิดที่เป็นทางการ มันไม่ได้กำหนดบริสุทธิ์ / ไม่ใช่บริสุทธิ์หรือนามธรรมแต่มันไม่สนับสนุนแนวคิด ใครเป็นคนกำหนด

3
ชื่อเมธอดหรือตัวแปรของฉันยาวเกินไปหรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ดังนั้นฉันกำลังอยู่ในช่วงกลางของการเข้ารหัสโชคไม่ดีสำหรับฉันฉันอยู่ใน "โซน" จากนั้นฉันก็คิดกับตัวเองว่าชื่อวิธีการ / ตัวแปรของฉันยาวหรือไม่? POPออกจากโซน I Go! ดังนั้นฉันมาที่นี่เพื่อถามวิธี / ชื่อตัวแปรของฉันยาวเกินไปหรือไม่ คุณเป็นผู้พิพากษา! คะแนนโบนัสสำหรับทุกคนที่สามารถเข้าใจสิ่งที่ฉันกำลังเขียนถึงแม้ว่าฉันจะแน่ใจว่ากูรูจะสามารถเข้าใจได้อย่างรวดเร็ว! อย่างไรก็ตามนี่คือวิธีการและชื่อตัวแปรของฉัน วิธีการ: searchBlockedListForBlockedSquares (), isCurrentSquareNextToAtLeastOneBlockedSquare (), searchBlockedListForBlockedSquares () ตัวแปร: isNextToBlockedSquares; ฉันคิดว่ามีเพียงตัวแปรเดียวที่ดูเหมือนยาวเกินไป
15 naming  variables 

13
async & คอย - สำรวจทางเลือก [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ตอนนี้เรารู้ว่าสิ่งที่อยู่ในร้านสำหรับ C # 5 มีเห็นได้ชัดว่ายังคงเปิดสำหรับเราที่จะมีอิทธิพลต่อทางเลือกของสองคำใหม่สำหรับสasynchrony 'ที่ได้รับการประกาศโดย Anders Heijsberg เมื่อวานนี้ที่PDC10 async void ArchiveDocuments(List<Url> urls) { Task archive = null; for(int i = 0; i < urls.Count; ++i) { var document = await FetchAsync(urls[i]); if (archive != null) await archive; archive = ArchiveAsync(document); } …
15 c#  naming 

4
Bootstrapper ในการเขียนโปรแกรมคืออะไร?
บางครั้งฉันเห็นคำว่า "Bootstrapper" ฉันเห็นมันครั้งสุดท้ายเมื่อสร้างแบบฝึกหัดการเรียนรู้สำหรับปริซึม ฉันสะดุดกับUnityBootstrapperชั้นเรียน คำถามของฉันคือ: เมื่อใดที่คุณจะเรียกชั้นเรียนว่า "Bootstrapper" ทำไม? พูดเกี่ยวกับชั้นเรียนว่าอย่างไร?

5
วิธีการจัดระเบียบทรัพยากรสตริงการแปล
เรากำลังพัฒนาแอปพลิเคชั่นขนาดใหญ่ประกอบด้วยแพ็คเกจขนาดเล็กจำนวนมาก แต่ละแพ็คเกจมีชุดของไฟล์ทรัพยากรสำหรับการแปล วิธีที่ดีที่สุดในการจัดระเบียบและตั้งชื่อสตริงการแปลคืออะไร นี่คือความคิดของฉัน: การจัดการรายการที่ซ้ำกัน ข้อความเดียวกัน (พูดว่า "รหัสไปรษณีย์") อาจเกิดขึ้นหลายครั้งภายในแพ็คเกจที่กำหนด Programming สัญชาตญาณ (แห้ง) บอกฉันเพื่อสร้างทรัพยากรสายเดียวที่ใช้ร่วมกันโดยเกิดขึ้นทั้งหมด จากนั้นอีกครั้งนักแปลอาจต้องการเลือกการแปลที่ยาว ("Postleitzahl") ในบางแห่งและอีกอันที่สั้นกว่า ("PLZ") ในที่ที่มีพื้นที่น้อย หรือเราอาจตัดสินใจต่อท้ายเครื่องหมายจุดคู่กับเหตุการณ์บางอย่าง ("รหัสไปรษณีย์:") แต่ไม่ใช่สำหรับบางคน หรือเราอาจต้องการตัวพิมพ์ใหญ่ ("รหัสไปรษณีย์") ที่แตกต่างกันในบางสถานที่ ข้อโต้แย้งทั้งหมดเหล่านี้ชี้ไปที่การสร้างทรัพยากรต่อการใช้งานแม้ว่าเนื้อหาของพวกเขาเหมือนกัน การตั้งชื่อ ถ้าเรามุ่งมั่นที่จะกำจัดข้อมูลซ้ำมันทำให้รู้สึกไปยังแหล่งข้อมูลชื่อตามเนื้อหาอาจจะกระทบถึงชนิดของการใช้งานผ่านทางคำนำหน้า ดังนั้นเราอาจมีlabelOK= "ตกลง" , messageFileTooLarge= "ไฟล์เกินขนาดไฟล์สูงสุด" และlabelZipCode= "รหัสไปรษณีย์" การตั้งชื่อโดยเนื้อหานั้นมีข้อดีของการจัดการข้อโต้แย้งรูปแบบตามธรรมชาติ: ทรัพยากรmessageFileHas_0_MBWhileMaximumIs_1_MBใช้อาร์กิวเมนต์การจัดรูปแบบสองแบบอย่างชัดเจนขนาดไฟล์จริงและขนาดไฟล์สูงสุด อย่างไรก็ตามหากเราอนุญาตการซ้ำซ้อนการตั้งชื่อตามเนื้อหาเพียงอย่างเดียวไม่สมเหตุสมผล เพื่อให้ได้รับชื่อทรัพยากรที่ไม่ซ้ำกันเราจะต้องรวมถึงสถานที่การใช้งานในชื่อทรัพยากร ผลงานที่สำหรับการควบคุมกราฟิกแม้ว่าตัวระบุมีแนวโน้มที่จะได้รับบิตยาว: fileSelectionConfirmationButtonText= "OK" , customerDetailsTableColumnZipCode= "รหัสไปรษณีย์" อย่างไรก็ตามสำหรับไฟล์รหัสที่ไม่ใช่แบบเห็นภาพนั้นจะยากขึ้น คุณจะตั้งชื่อการใช้งานที่เฉพาะเจาะจงของสตริงได้อย่างไรหากคุณไม่รู้ว่ามันจะปรากฏที่ใดในที่สุด? โดยไฟล์รหัสและชื่อฟังก์ชั่น? ดูเหมือนจะค่อนข้างงุ่มง่ามและเปราะสำหรับฉัน โดยรวมแล้วฉันกำลังโน้มน้าวให้อนุญาตการทำซ้ำ แต่ฉันพยายามดิ้นรนเพื่อหารูปแบบการตั้งชื่อที่สอดคล้องซึ่งสนับสนุนสิ่งนี้ …

4
เราควรเปลี่ยนชื่อเมธอดที่โอเวอร์โหลดหรือไม่?
สมมติว่าอินเตอร์เฟสมีวิธีการเหล่านี้: Car find(long id); List<Car> find(String model); จะเป็นการดีกว่าถ้าจะเปลี่ยนชื่อพวกเขาเช่นนี้? Car findById(long id); List findByModel(String model); อันที่จริงนักพัฒนาซอฟต์แวร์ใด ๆ ที่ใช้ API นี้ไม่จำเป็นต้องดูที่อินเทอร์เฟซเพื่อรับทราบข้อโต้แย้งที่เป็นไปได้ของfind()วิธีการเริ่มต้น ดังนั้นคำถามของฉันจึงเป็นเรื่องทั่วไปมากขึ้น: อะไรคือประโยชน์ของการใช้วิธีโอเวอร์โหลดในโค้ดเนื่องจากลดความสามารถในการอ่าน

9
คุณจะทำอย่างไรเมื่อการประชุมการตั้งชื่อของคุณขัดแย้งกับภาษาของคุณ?
โอเคนี่เป็นหนึ่งในสิ่งเล็ก ๆ น้อย ๆ เหล่านั้นที่บั๊กฉันเสมอ ฉันมักจะไม่ย่อตัวระบุและเพียงครั้งเดียวที่ฉันใช้ตัวระบุสั้น ๆ (เช่นi) สำหรับการวนซ้ำแน่น มันทำให้ฉันหงุดหงิดเมื่อฉันทำงานใน C ++ และฉันมีตัวแปรที่ต้องมีชื่อoperatorหรือclassและฉันต้องแก้ไขมันหรือใช้ตัวย่อเพราะมันจบลงด้วยการยื่นออกมา Caveat: สิ่งนี้อาจเกิดขึ้นกับฉันอย่างไม่เป็นสัดส่วนบ่อยครั้งเนื่องจากฉันทำงานเป็นอย่างมากในการออกแบบภาษาโปรแกรมโดยที่วัตถุโดเมนอาจสะท้อนแนวคิดในภาษาโฮสต์และทำให้เกิดการปะทะกันโดยไม่ตั้งใจ คุณจะจัดการกับสิ่งนี้อย่างไร ย่อ? ( op) สะกดผิด? ( klass) มีอะไรอีกไหม ( operator_)
14 naming 

4
ข้อดีของเนมสเปซ / แพ็คเกจ
ภาษาการเขียนโปรแกรมบางภาษา (เช่น Java และ C ++) มีคุณสมบัติภาษาที่เรียกว่า "แพ็คเกจ" หรือ "namespaces" การมีเนมสเปซเป็นประโยชน์จริง ๆ อย่างไร เป็นไปได้ที่จะทำเครื่องหมายฟังก์ชั่นและคลาสว่าเป็นของห้องสมุดบางแห่งโดยไม่ใช้คุณสมบัติภาษาเช่น SDL ทำ (เช่นSDL_BlitSurface()) เนมสเปซไม่มีประโยชน์เพียงพอที่จะคุ้มค่าหรือไม่? มันมีประโยชน์ในห้องสมุด แต่ไม่ใช่ในแอพพลิเคชัน มีประโยชน์ทุกที่ยกเว้นในโครงการขนาดเล็กหรือไม่? คิด?

2
ลุงบ๊อบหมายความว่าอะไรโดย 'ชื่อวลีคำนาม'?
ฉันอ่านรหัสสะอาดโดยลุงบ๊อบ เนื่องจากฉันไม่ใช่เจ้าของภาษาฉันจึงไม่เข้าใจข้อความต่อไปนี้: คลาสและวัตถุที่ควรจะมีคำนามหรือนามวลีชื่อเช่น Customer, WikiPage, และAccount AddressParserคำหลีกเลี่ยงชอบ Manager, Processor, DataหรือInfoในชื่อของชั้นเรียน ชื่อคลาสไม่ควรเป็นคำกริยา ที่ผมรู้ว่าไม่มีใครManager, Processor, DataและInfoเป็นคำกริยาไม่ได้หรือไม่ อะไรคือจุดที่เขาต้องการเน้น

6
อนุสัญญาการตั้งชื่อแบบใดที่จะใช้สำหรับพารามิเตอร์ฟังก์ชัน C #
มีสถานการณ์เมื่อชื่อที่ส่งผ่านในพารามิเตอร์จะถูกส่งไปเป็นประเภทใหม่ แต่ชื่อของวัตถุที่ผ่านควรจะยังคงคล้ายกัน สำหรับกรณีของคลาสแอททริบิวต์เราสามารถใช้โอเปอเรเตอร์นี้ได้ แต่สิ่งที่เกี่ยวกับตัวแปรโลคอลในฟังก์ชั่น แบบแผนการเข้ารหัสใดที่ใช้กันอย่างแพร่หลาย ตัวอย่าง, void MyFunc(BaseClass myPara) { DerivedClass _mypara = (BaseClass)myPara; } หรือในทางตรงกันข้าม void MyFunc(BaseClass _myPara) { DerivedClass mypara = (BaseClass)_myPara; } หรืออนุสัญญาอื่น ๆ
14 c#  naming 

4
การตั้งชื่อฟิลด์บูลีนที่เป็นคำกริยา
ใน Java โดย getter การประชุมและตั้งค่าสำหรับเขตข้อมูลแบบบูลจะเป็นและisField() setField()นี้ทำงานได้อย่างสมบูรณ์ดีกับชื่อเขตที่มีคำคุณศัพท์ชอบactive, visible, closedฯลฯ แต่ฉันจะตั้งชื่อฟิลด์ที่มีความหมายของคำกริยาได้haveChildrenอย่างไร เพิ่ม“ _ing” ในคำกริยา ( ) หรืออาจ?havingChildren เพื่อชี้แจงฉันไม่สามารถควบคุมชื่อเมธอด (getter และ setter) เนื่องจากสร้างโดยอัตโนมัติโดย IDE ดังนั้นสิ่งที่ฉันต้องการคือชื่อเขตข้อมูลที่เหมาะสมเพื่อที่ว่าเมื่อ IDE สร้างผู้ทะเยอทะยานมันจะทำให้เกิดความรู้สึก ยกตัวอย่างเช่นhasChildrenเป็นชื่อเขตข้อมูลที่สมบูรณ์แบบ แต่เมื่อ IDE สร้าง getter isHasChildrenสำหรับฟิลด์มันจะ ฉันจะแก้ปัญหานี้ได้อย่างไร
14 java  naming 

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