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

C # เป็นภาษาการเขียนโปรแกรมเชิงวัตถุที่มีการจัดการและรวบรวมขยะที่สร้างขึ้นโดย Microsoft ควบคู่ไปกับแพลตฟอร์ม. NET

22
ทำไม VB จึงเป็นที่นิยม [ปิด]
สำหรับฉันแล้ว Visual Basic ดูเหมือนจะเงอะงะน่าเกลียดผิดพลาดและอ่านยาก ฉันจะให้คนอื่น ๆ ที่อธิบาย ว่าทำไม ในขณะที่ VB.net เป็นก้าวกระโดดครั้งใหญ่สำหรับภาษาในแง่ของคุณสมบัติอย่างชัดเจน แต่ฉันก็ยังไม่เข้าใจว่าทำไมทุกคนเลือกที่จะใช้รหัสใน VB มากกว่าพูด C # อย่างไรก็ตามฉันยังคงเห็น (แอปพลิเคชันเชิงพาณิชย์ส่วนใหญ่จาก "ร้านค้า MS" ที่สร้างขึ้นใน VB ฉันสามารถแก้ไขได้ในเรื่องนี้ แต่ VB ก็ยังคงเป็นที่นิยมมากกว่าที่ควรจะเป็น ทุกคนสามารถช่วยตอบคำถามเหล่านี้ (หรือทั้งหมด): ฉันขาดอะไรบางอย่างกับ VB หรือไม่? ง่ายต่อการเรียนรู้หรือ "เป็นมิตร" มากกว่า C # หรือไม่ มีคุณสมบัติที่ฉันไม่รู้หรือไม่? ทำไม VB / VB.net จึงใช้บ่อยในปัจจุบันโดยเฉพาะในโครงการเว็บ?

2
การทดสอบหน่วยถือว่ามีความเปราะหรือไม่ถ้ามันล้มเหลวเมื่อตรรกะทางธุรกิจเปลี่ยนไป?
โปรดดูรหัสด้านล่าง; มันทดสอบเพื่อดูว่าบุคคลที่มีเพศหญิงมีสิทธิ์ได้รับข้อเสนอ 1: [Fact] public void ReturnsFalseWhenGivenAPersonWithAGenderOfFemale() { var personId = Guid.NewGuid(); var gender = "F"; var person = new Person(personId, gender); var id = Guid.NewGuid(); var offer1 = new Offer1(id,"Offer1"); Assert.False(offer1.IsEligible(person)); } การทดสอบหน่วยนี้สำเร็จ อย่างไรก็ตามจะล้มเหลวหากมีการเสนอ 'Offer1' ให้กับสตรีในอนาคต เป็นที่ยอมรับหรือไม่ - ถ้าตรรกะทางธุรกิจโดยรอบเสนอ 1 การเปลี่ยนแปลงการทดสอบหน่วยจะต้องเปลี่ยน โปรดทราบว่าในบางกรณี (สำหรับข้อเสนอบางอย่าง) ตรรกะทางธุรกิจจะเปลี่ยนไปในฐานข้อมูลเช่นนี้: update Offers set Gender='M' where …

2
การใช้คลาสนามธรรมและอินเทอร์เฟซที่เป็นนามธรรม
แม้ว่าสิ่งนี้จะไม่ได้บังคับในมาตรฐาน C ++ แต่ดูเหมือนว่าวิธี GCC เช่นใช้คลาสผู้ปกครองรวมถึงนามธรรมที่บริสุทธิ์คือการรวมตัวชี้ไปยังตาราง v สำหรับคลาสนามธรรมนั้นในทุกอินสแตนซ์ของคำถาม . โดยปกติแล้วสิ่งนี้จะขยายขนาดของอินสแตนซ์ของคลาสนี้โดยตัวชี้สำหรับคลาสพาเรนต์ทั้งหมดที่มี แต่ฉันสังเกตเห็นว่าคลาส C และโครงสร้างจำนวนมากมีอินเทอร์เฟซหลักมากมายซึ่งโดยทั่วไปแล้วเป็นคลาสนามธรรมที่บริสุทธิ์ ฉันจะแปลกใจถ้าทุกครั้งที่พูดDecimalถูกป่องด้วย 6 ตัวชี้ไปยังทุกมันเป็นอินเทอร์เฟซต่าง ๆ ดังนั้นถ้า C # ทำอินเตอร์เฟสแตกต่างกันอย่างน้อยในการใช้งานทั่วไป (ฉันเข้าใจว่ามาตรฐานตัวเองอาจไม่ได้กำหนดการนำไปใช้) และการใช้งาน C ++ มีวิธีหลีกเลี่ยงการขยายขนาดวัตถุเมื่อเพิ่มผู้ปกครองเสมือนบริสุทธิ์ให้กับชั้นเรียนหรือไม่?

5
การจับ / การโยนข้อยกเว้นทำให้วิธีการที่บริสุทธิ์นั้นไม่บริสุทธิ์หรือไม่?
ตัวอย่างโค้ดต่อไปนี้ให้บริบทกับคำถามของฉัน คลาสของห้องพักถูกเตรียมใช้งานด้วยผู้รับมอบสิทธิ์ ในการดำเนินการครั้งแรกของคลาสห้องไม่มีผู้คุมที่ได้รับมอบหมายที่โยนข้อยกเว้น ข้อยกเว้นดังกล่าวจะทำให้เกิดฟองขึ้นไปยังสถานที่ให้บริการภาคเหนือซึ่งมีการประเมินผู้ได้รับมอบหมาย (หมายเหตุ: วิธีการหลัก () แสดงให้เห็นถึงวิธีการที่อินสแตนซ์ของห้องพักจะใช้ในรหัสลูกค้า): public sealed class Room { private readonly Func<Room> north; public Room(Func<Room> north) { this.north = north; } public Room North { get { return this.north(); } } public static void Main(string[] args) { Func<Room> evilDelegate = () => { throw new Exception(); …

3
ฉันควรวางใบขับขี่ไว้ในที่ใด
ฉันเป็นผู้พัฒนารุ่นน้องที่กำลังทำงานเกี่ยวกับการเขียนอัปเดตสำหรับซอฟต์แวร์ที่รับข้อมูลจากโซลูชันของบุคคลที่สามจัดเก็บไว้ในฐานข้อมูลจากนั้นกำหนดเงื่อนไขข้อมูลสำหรับการใช้งานโดยโซลูชันของ บริษัท อื่น ซอฟต์แวร์ของเราทำงานเป็นบริการ Windows ดูรหัสจากรุ่นก่อนหน้าฉันเห็นสิ่งนี้: static Object _workerLocker = new object(); static int _runningWorkers = 0; int MaxSimultaneousThreads = 5; foreach(int SomeObject in ListOfObjects) { lock (_workerLocker) { while (_runningWorkers >= MaxSimultaneousThreads) { Monitor.Wait(_workerLocker); } } // check to see if the service has been stopped. If yes, then …
27 c#  .net  concurrency  locks 

1
วิธีเลือกระหว่างการใช้กิจกรรมโดเมนหรือปล่อยให้แอปพลิเคชันเลเยอร์จัดการทุกอย่าง
ฉันกำลังตั้งค่าขั้นตอนแรกของฉันในการออกแบบที่ขับเคลื่อนด้วยโดเมนซื้อสมุดสีฟ้าและทั้งหมดและฉันพบว่าตัวเองเห็นวิธีสามวิธีในการนำโซลูชันมาใช้ สำหรับบันทึก: ฉันไม่ได้ใช้ CQRS หรือการจัดหากิจกรรม สมมติว่าคำขอของผู้ใช้มาในเลเยอร์บริการแอพพลิเคชัน ตรรกะทางธุรกิจสำหรับคำขอนั้นคือ (ด้วยเหตุผลใดก็ตาม) ที่แยกออกเป็นวิธีการในเอนทิตีและวิธีการในบริการโดเมน ฉันจะเรียกวิธีการเหล่านั้นได้อย่างไร ตัวเลือกที่ฉันรวบรวมได้มีดังนี้: ให้บริการแอปพลิเคชันโทรทั้งสองวิธี ใช้วิธีการฉีด / ส่งสองครั้งเพื่อฉีดบริการโดเมนลงในเอนทิตีปล่อยให้เอนทิตีทำสิ่งนั้นแล้วปล่อยให้มันเรียกวิธีการบริการโดเมน (หรือวิธีอื่น ๆ ให้บริการโดเมนเรียกวิธีการในนิติบุคคล) เพิ่มเหตุการณ์โดเมนในวิธีเอนทิตีซึ่งเป็นตัวจัดการที่เรียกใช้บริการโดเมน (ประเภทของกิจกรรมโดเมนที่ฉันกำลังพูดถึงคือ: http://www.udidahan.com/2009/06/14/domain-events-salvation/ ) ฉันคิดว่าสิ่งเหล่านี้ใช้ได้จริง แต่ฉันไม่สามารถเลือกระหว่างพวกเขาได้ ฉันเคยคิดเกี่ยวกับเรื่องนี้มานานแล้วและฉันก็มาถึงจุดที่ฉันไม่เห็นความแตกต่างทางความหมายระหว่างทั้งสาม คุณรู้แนวทางบางอย่างเมื่อใช้อะไร

5
อย่าประกาศอินเตอร์เฟสสำหรับวัตถุที่ไม่เปลี่ยนรูป
อย่าประกาศอินเตอร์เฟสสำหรับวัตถุที่ไม่เปลี่ยนรูป [แก้ไข] เมื่อวัตถุที่เป็นปัญหาแสดงถึง Data Transfer Objects (DTOs) หรือ Plain Old Data (PODs) นั่นเป็นแนวทางที่สมเหตุสมผลหรือไม่? ถึงตอนนี้ฉันมักจะสร้างอินเตอร์เฟสสำหรับคลาสที่ปิดผนึกซึ่งไม่เปลี่ยนรูป (ข้อมูลไม่สามารถเปลี่ยนแปลงได้) ฉันพยายามระวังตัวเองว่าจะไม่ใช้อินเทอร์เฟซที่ใดก็ตามที่ฉันสนใจเกี่ยวกับการไม่เปลี่ยนรูป โชคไม่ดีที่อินเทอร์เฟซเริ่มแพร่หลายรหัส (และไม่ใช่เพียงรหัสของฉันที่ฉันกังวล) คุณเลิกใช้งานอินเทอร์เฟซแล้วต้องการส่งไปยังโค้ดที่ต้องการสมมติว่าสิ่งที่ส่งผ่านไปนั้นไม่สามารถเปลี่ยนแปลงได้ เนื่องจากปัญหานี้ฉันจึงพิจารณาไม่ประกาศส่วนต่อประสานสำหรับวัตถุที่ไม่เปลี่ยนรูป สิ่งนี้อาจมีเครือข่ายที่เกี่ยวข้องกับการทดสอบหน่วย แต่นอกเหนือจากนั้นสิ่งนี้ดูเหมือนจะเป็นแนวทางที่สมเหตุสมผลหรือไม่? หรือมีรูปแบบอื่นที่ฉันควรใช้เพื่อหลีกเลี่ยงปัญหา "อินเตอร์เฟซการแพร่กระจาย" ฉันเห็น? (ฉันใช้วัตถุที่ไม่เปลี่ยนรูปแบบเหล่านี้ด้วยเหตุผลหลายประการ: ส่วนใหญ่เพื่อความปลอดภัยของเธรดเนื่องจากฉันเขียนโค้ดแบบมัลติเธรดจำนวนมาก แต่เพราะมันหมายความว่าฉันสามารถหลีกเลี่ยงการทำสำเนาชุดป้องกันวัตถุที่ส่งผ่านไปยังวิธีต่างๆ หลายกรณีเมื่อคุณรู้ว่าบางสิ่งบางอย่างไม่เปลี่ยนรูป - ซึ่งคุณไม่ได้รับถ้าคุณได้ส่งมอบอินเทอร์เฟซที่จริงแล้วบ่อยครั้งที่คุณไม่สามารถทำสำเนาการป้องกันของวัตถุที่อ้างอิงผ่านทางอินเทอร์เฟซ การดำเนินการโคลนหรือวิธีการทำให้เป็นอนุกรมใด ๆ ... ) [แก้ไข] เพื่อให้บริบทมากขึ้นด้วยเหตุผลของฉันที่ต้องการทำให้วัตถุไม่เปลี่ยนรูปให้ดูโพสต์บล็อกนี้จาก Eric Lippert: http://blogs.msdn.com/b/ericlippert/archive/tags/immutability/ ฉันควรชี้ให้เห็นว่าฉันกำลังทำงานกับแนวคิดระดับล่างบางอย่างที่นี่เช่นรายการที่จัดการ / ส่งต่อในคิวงานแบบมัลติเธรด สิ่งเหล่านี้คือ DTO นอกจากนี้โจชัวโบลชแนะนำให้ใช้วัตถุที่ไม่เปลี่ยนรูปในหนังสือของเขาที่มีประสิทธิภาพชวา ติดตาม ขอบคุณสำหรับความคิดเห็นทั้งหมด ฉันตัดสินใจที่จะไปข้างหน้าและใช้แนวทางนี้สำหรับ DTOs …
27 c#  immutability 

7
การโยน ArgumentNullException ช่วยได้อย่างไร
สมมติว่าฉันมีวิธี: public void DoSomething(ISomeInterface someObject) { if(someObject == null) throw new ArgumentNullException("someObject"); someObject.DoThisOrThat(); } ฉันได้รับการฝึกฝนให้เชื่อว่าการขว้างArgumentNullExceptionเป็น "ถูกต้อง" แต่ข้อผิดพลาด "การอ้างอิงวัตถุไม่ได้ถูกตั้งค่าเป็นอินสแตนซ์ของวัตถุ" หมายความว่าฉันมีข้อผิดพลาด ทำไม? ฉันรู้ว่าถ้าฉันแคชอ้างอิงsomeObjectและใช้ในภายหลังแล้วมันจะดีกว่าที่จะตรวจสอบความว่างเปล่าเมื่อผ่านไปและล้มเหลวก่อน อย่างไรก็ตามหากฉันอ้างถึงในบรรทัดถัดไปทำไมเราจึงควรตรวจสอบ มันจะโยนข้อยกเว้นไม่ทางใดก็ทางหนึ่ง แก้ไข : มันเพิ่งเกิดขึ้นกับฉัน ... ความกลัวของโมฆะที่ลงทะเบียนไม่ได้มาจากภาษาอย่าง C ++ ที่ไม่ได้ตรวจสอบคุณ (นั่นเป็นเพียงแค่พยายามที่จะเรียกใช้วิธีการบางอย่างที่ตำแหน่งหน่วยความจำ zero + method offset)?
27 c#  null 

9
เหตุใดผู้คนจึงต่อต้านแท็ก #region ในวิธีการอย่างมาก
ฉันได้ยินมามากมายเกี่ยวกับการทำให้วิธีการสั้นและฉันได้ยินโปรแกรมเมอร์จำนวนมากพูดว่าการใช้ #region tags ในวิธีนั้นเป็นสัญญาณที่แน่ใจว่ามันยาวเกินไปและควรได้รับการแบ่งเป็นหลาย ๆ วิธี อย่างไรก็ตามสำหรับฉันแล้วดูเหมือนว่ามีหลายกรณีที่การแยกรหัสด้วยแท็ก #region ภายในเมธอดนั้นเป็นวิธีที่เหนือกว่าในการรีแฟคเตอร์เป็นหลายวิธี สมมติว่าเรามีวิธีการคำนวณที่สามารถแยกออกเป็นสามขั้นตอนค่อนข้างชัดเจน นอกจากนี้แต่ละขั้นตอนเหล่านี้มีความเกี่ยวข้องกับการคำนวณสำหรับวิธีการนี้เท่านั้นดังนั้นการแตกออกเป็นวิธีการใหม่ทำให้เราไม่ต้องใช้รหัสซ้ำ อะไรคือประโยชน์ของการแยกแต่ละขั้นตอนเป็นวิธีของตัวเอง? เท่าที่ฉันสามารถบอกได้สิ่งที่เราได้รับก็คือความสามารถในการอ่านและขอบเขตตัวแปรที่แยกต่างหากสำหรับแต่ละเฟส (ซึ่งจะช่วยป้องกันการแก้ไขเฟสเฉพาะจากการทำลายระยะอื่นโดยไม่ตั้งใจ) อย่างไรก็ตามสิ่งเหล่านี้สามารถทำได้โดยไม่ต้องแยกแต่ละขั้นตอนเป็นวิธีของตนเอง แท็กภูมิภาคช่วยให้เราสามารถยุบรหัสลงในแบบฟอร์มซึ่งสามารถอ่านได้ (ด้วยสิทธิประโยชน์เพิ่มเติมที่เราไม่ต้องออกจากที่ของเราในไฟล์นี้อีกต่อไปหากเราตัดสินใจขยายและตรวจสอบรหัส) และเพียงห่อแต่ละเฟสใน{}สร้างขอบเขตของตนเองเพื่อทำงานกับ ประโยชน์ในการทำเช่นนี้คือเราไม่ได้ทำให้ขอบเขตระดับชั้นเรียนสกปรกด้วยวิธีการสามวิธีที่จริงแล้วเกี่ยวข้องกับการทำงานภายในของวิธีที่สี่เท่านั้น ทันทีที่เปลี่ยนโฉมหน้าวิธีการยาวเป็นชุดของวิธีการสั้น ๆ ดูเหมือนว่าฉันจะใช้รหัสเทียบเท่ากับการเพิ่มประสิทธิภาพก่อนวัยอันควร; คุณกำลังแนะนำความซับซ้อนเพิ่มเติมเพื่อแก้ไขปัญหาซึ่งในหลายกรณีไม่เคยเกิดขึ้น คุณสามารถแยกเฟสใดช่วงหนึ่งเป็นวิธีของตัวเองได้ในภายหลังหากมีโอกาสในการใช้รหัสซ้ำ คิด?
27 c#  coding-style 

1
เรียกใช้ฟังก์ชั่นและไม่ต้องรอใน C #
ฉันมีคอนโทรลเลอร์ในแอปพลิเคชันเว็บ mvc4 ซึ่งมีการดำเนินการที่ต้องเรียกใช้ฟังก์ชันอื่น จะเกิดอะไรขึ้นในฟังก์ชั่นนั้นเช่นค่าตอบแทนไม่สำคัญสำหรับการกระทำของฉัน ฉันจะเรียกฟังก์ชั่นนั้นและไม่ต้องรอให้มันทำงานได้อย่างไร? ฉันคิดว่ามันสามารถทำได้โดย async แต่ประเด็นของฉันคือไม่ใช้ทรัพยากรเพียงแค่เรียกใช้ฟังก์ชั่นและไม่ต้องรอสิ่งที่เคยเกิดขึ้น โปรดให้คำแนะนำแก่ฉัน
26 c#  .net  asp.net  asp.net-mvc 

9
เหตุใดจึงควรปิดการใช้งานคำเตือนคอมไพเลอร์?
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 8 ปีที่ผ่านมา คำตอบนี้และความคิดเห็นที่เพิ่มเข้าไปแสดงวิธีปิดการใช้งานคำเตือนคอมไพเลอร์หลายคำ#pragmaสั่งโดยใช้คำสั่ง ทำไมหนึ่งต้องการทำเช่นนั้น? โดยปกติแล้วคำเตือนจะอยู่ที่เหตุผลและฉันก็รู้สึกเสมอว่าเป็นเหตุผลที่ดี มี "กรณีที่ถูกต้อง" ที่คำเตือนควรปิดการใช้งานหรือไม่ ตอนนี้ฉันนึกอะไรไม่ออกเลย แต่นั่นอาจเป็นแค่ฉัน
26 c#  c++  c  warnings 

20
การเรียนรู้ C # เป็นภาษาแรกผิดหรือเปล่า? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันรู้ว่ามีคำถามที่คล้ายกันที่นี่ซึ่งฉันได้อ่าน แต่ฉันเพิ่งอ่านโพสต์นี้โดย Joel Spolsky: ฉันจะสอนคนที่ฉลาดได้อย่างไรโดยไม่มีประสบการณ์การเขียนโปรแกรมวิธีการเขียนโปรแกรม และมันทำให้ฉันคิดถึงวิธีการเรียนรู้ของฉันและอาจเป็นอันตรายในระยะยาวหรือไม่ ฉันเขียนด้วยภาษาต่าง ๆ แต่ภาษา C # เป็นภาษาที่จริงจังชิ้นแรกของฉันฉันได้อ่าน "Head First C #" และสร้างโปรเจ็กต์ไม่กี่ แต่หลังจากอ่านโพสต์ด้านบนฉันพบว่ามันน่าผิดหวังเล็กน้อยที่ฉันอาจจะทำทุกอย่างผิดปกติเห็นได้ชัดว่าฉันเคารพความคิดเห็นของโจเอลซึ่งเป็นสิ่งที่ทำให้ฉันเล็กน้อย ฉันเริ่มอ่าน "รหัส" ตามที่แนะนำในรายการเรื่องรออ่านและฉันพบว่ามันค่อนข้างยาก แต่สนุก ฉันรู้สึกเหมือนว่ามันถูกขัดออกจาก "การแฮ็คที่ไม่เกี่ยวกับ" ใน Visual Studio ดังนั้นตอนนี้ฉันไม่แน่ใจว่าฉันควรใช้เส้นทางไหน? ฉันควรถอยหลังและทำตามคำแนะนำของโจเอลและเริ่มอ่าน? ฉันเดาว่าเป้าหมายหลักของฉันคือการเป็นโปรแกรมเมอร์ที่ดีเหมือนคนอื่น ๆ แต่ฉันไม่ต้องการที่จะฝึกฝนโดยการเรียนรู้ภาษา. NET เมื่อคนที่คิดว่าฉันนับถือคิดว่ามันเป็นอันตราย คิด?
26 c# 

5
ย้ายจาก Winforms ไปยัง WPF [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเป็นนักพัฒนาWindows Forms ที่มีประสบการณ์มานานแต่ตอนนี้ถึงเวลาย้ายไป WPF แล้วเนื่องจากโครงการ WPF ใหม่กำลังจะมาถึงฉันเร็ว ๆ นี้และฉันมีเวลารอคอยสั้น ๆ เท่านั้นในการเตรียมตัวสำหรับการเรียนรู้ WPF อะไรคือวิธีที่ดีที่สุดสำหรับผู้พัฒนา Winforms ที่มีประสบการณ์? คุณช่วยให้คำแนะนำและคำแนะนำแก่ฉันเพื่อเรียนรู้ WPF ในเวลาอันสั้นได้ไหม! มีตัวอย่างโซลูชัน WPF อย่างง่ายและแบบฝึกหัดสั้น ๆ (วิดีโอ) หรือไม่? ซึ่งหนังสือที่คุณแนะนำ? www.windowsclient.net เป็นจุดเริ่มต้นที่ดีหรือไม่ มีทางเลือกอื่นในเว็บไซต์ Microsoft อย่างเป็นทางการหรือไม่?
26 c#  .net  windows  wpf  winforms 

3
ทำไมจึงไม่มีการติดตั้ง OrderedDictionary ทั่วไปใน. net
เหตุใด Microsoft จึงไม่ให้การใช้พจนานุกรมแบบสั่งโดยทั่วไป? มีการใช้งานที่กำหนดเองไม่กี่ฉันได้เห็นรวมถึง: http://www.codeproject.com/KB/recipes/GenericOrderedDictionary.aspx แต่ทำไม Microsoft ถึงไม่รวมอยู่ในไลบรารี. net พื้นฐาน แน่นอนว่าพวกเขามีเหตุผลที่จะไม่สร้าง .... แต่มันคืออะไร? ก่อนที่จะโพสต์ข้อความนี้ฉันได้เห็น: https://stackoverflow.com/questions/2629027/no-generic-implementation-of-ordereddictionary แต่นั่นเป็นการยืนยันว่ามันไม่มีอยู่จริง ไม่ใช่เหตุผลที่ไม่มีอยู่จริง ขอบคุณ
26 c#  .net 

4
C # namespace และแบบแผนการตั้งชื่อคลาสสำหรับไลบรารี
ฉันกำลังสร้างห้องสมุดที่มีฟังก์ชั่นยูทิลิตี้ขนาดเล็กใน C # และพยายามตัดสินใจเกี่ยวกับเนมสเปซและการตั้งชื่อคลาส องค์กรปัจจุบันของฉันเป็นเช่นนี้: Company Company.TextUtils public class TextUtils {...} Company.MathsUtils public class MathsUtils {...} public class ArbitraryPrecisionNumber {...} public class MathsNotation {...} Company.SIUnits public enum SISuffixes {...} public class SIUnits {...} นี่เป็นวิธีที่ดีในการจัดระเบียบเนมสเปซและคลาสหรือมีวิธีที่ดีกว่านี้หรือไม่? โดยเฉพาะดูเหมือนว่ามีชื่อเดียวกันในเนมสเปซและชื่อคลาส (เช่นCompany.TextUtilsเนมสเปซและTextUtilsคลาส) เป็นเพียงการทำซ้ำและแสดงให้เห็นว่ารูปแบบอาจดีกว่า
26 c#  naming  namespace 

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