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

C # (ออกเสียงว่า "ดูคม") เป็นภาษาการเขียนโปรแกรมหลายกระบวนทัศน์ในระดับสูงพิมพ์แบบคงที่พัฒนาโดย Microsoft รหัส C # มักกำหนดเป้าหมายกลุ่มเครื่องมือ. NET ของ Microsoft และรันไทม์ซึ่งรวมถึง. NET Framework, .NET Core และ Xamarin เป็นต้น ใช้แท็กนี้สำหรับคำถามเกี่ยวกับโค้ดที่เขียนในข้อกำหนดทางการของ C # หรือ C #

30
Visual Studio“ ไม่สามารถคัดลอก” …ในระหว่างการสร้าง
ฉันได้รับข้อผิดพลาดนี้ในระหว่างการสร้างโปรเจ็กต์ VS2012 C # ของฉัน Error 41 Could not copy "obj\Debug\WeinGartner.WeinCad.exe" to "bin\Debug\WeinGartner.WeinCad.exe". Exceeded retry count of 10. Failed. Error 42 Unable to copy file "obj\Debug\WeinGartner.WeinCad.exe" to "bin\Debug\WeinGartner.WeinCad.exe". The process cannot access the file 'bin\Debug\WeinGartner.WeinCad.exe' because it is being used by another process. ตอนนี้ฉันรู้แล้วว่าการฆ่ากระบวนการ Weingartner.WeinCad.vhost.exe ใช้งานได้ (บางครั้ง) แต่สิ่งนี้กำลังเกิดขึ้นกับประสาท มีวิธีใดที่จะหยุดสิ่งนี้ไม่ได้เลย? การตั้งค่าดีบักเกอร์ของฉันคือ


18
XmlSerializer ให้ FileNotFoundException ที่ตัวสร้าง
แอปพลิเคชันที่ฉันทำงานด้วยล้มเหลวเมื่อฉันพยายามเรียงลำดับประเภท คำสั่งเช่น XmlSerializer lizer = new XmlSerializer(typeof(MyType)); ผลิต: System.IO.FileNotFoundException occurred Message="Could not load file or assembly '[Containing Assembly of MyType].XmlSerializers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified." Source="mscorlib" FileName="[Containing Assembly of MyType].XmlSerializers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" FusionLog="" StackTrace: at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, …

4
แปลงผลการค้นหา Linq เป็นพจนานุกรม
ฉันต้องการเพิ่มบางแถวในฐานข้อมูลโดยใช้ Linq ไปยัง SQL แต่ฉันต้องการสร้าง "การตรวจสอบที่กำหนดเอง" ก่อนที่จะเพิ่มแถวเพื่อทราบว่าฉันต้องเพิ่มเปลี่ยนหรือเพิกเฉยแถวที่ไม่เหมาะสม ฉันต้องการเก็บ trafic ระหว่างไคลเอนต์และเซิร์ฟเวอร์ DB ให้น้อยที่สุดเท่าที่จะทำได้และลดจำนวนการค้นหา เมื่อต้องการทำเช่นนี้ฉันต้องการดึงข้อมูลให้น้อยที่สุดเท่าที่จำเป็นสำหรับการตรวจสอบความถูกต้องและเพียงครั้งเดียวที่จุดเริ่มต้นของกระบวนการ ฉันคิดว่าจะทำอะไรแบบนี้ แต่เห็นได้ชัดว่ามันไม่ทำงาน ใครมีความคิด? Dictionary<int, DateTime> existingItems = (from ObjType ot in TableObj select (new KeyValuePair<int, DateTime>(ot.Key, ot.TimeStamp)) ) สิ่งที่ฉันต้องการในตอนท้ายจะเป็นพจนานุกรมโดยไม่ต้องดาวน์โหลดวัตถุ ObjectType ทั้งหมดจาก TableObject ฉันยังพิจารณารหัสต่อไปนี้ แต่ฉันพยายามหาวิธีที่เหมาะสม: List<int> keys = (from ObjType ot in TableObj orderby ot.Key select ot.Key).ToList<int>(); List<DateTime> …

3
ใช้การทำธุรกรรมหรือ SaveChanges (false) และ AcceptAllChanges ()?
ฉันตรวจสอบธุรกรรมและดูเหมือนว่าพวกเขาดูแลตัวเองใน EF ตราบใดที่ฉันผ่านfalseไปSaveChanges()แล้วโทรติดต่อAcceptAllChanges()หากไม่มีข้อผิดพลาด: SaveChanges(false); // ... AcceptAllChanges(); เกิดอะไรขึ้นถ้ามีบางอย่างไม่ดี? ฉันไม่ต้องย้อนกลับหรือทันทีที่วิธีการของฉันไม่อยู่ในขอบเขตการทำธุรกรรมสิ้นสุดลงหรือไม่ เกิดอะไรขึ้นกับคอลัมน์ indentiy ใด ๆ ที่ได้รับมอบหมายผ่านทางธุรกรรมครึ่งทาง ฉันคิดว่าถ้ามีคนเพิ่มบันทึกหลังจากฉันก่อนที่ฉันจะเสียก็หมายความว่าจะมีค่าประจำตัวที่ขาดหายไป มีเหตุผลใดที่จะใช้TransactionScopeคลาสมาตรฐานในรหัสของฉัน?

13
ทำไมเราต้องกำหนดทั้งสอง == และ! = ใน C #
คอมไพเลอร์ C # ต้องการว่าเมื่อใดก็ตามที่ประเภทที่กำหนดเองจะกำหนดผู้ประกอบการ==มันจะต้องกำหนดด้วย!=(ดูที่นี่ ) ทำไม? ฉันอยากรู้ว่าทำไมนักออกแบบจึงคิดว่าจำเป็นและเหตุใดจึงไม่สามารถเริ่มต้นคอมไพเลอร์เพื่อให้เกิดการใช้งานที่สมเหตุสมผลสำหรับผู้ประกอบการรายใดรายหนึ่ง ตัวอย่างเช่น Lua ช่วยให้คุณกำหนดตัวดำเนินการความเสมอภาคเท่านั้นและคุณจะได้รับตัวดำเนินการอื่นฟรี C # จะทำเช่นเดียวกันโดยขอให้คุณสามารถกำหนดอย่างใดอย่างหนึ่งหรือทั้งสอง == == และ! = แล้วโดยอัตโนมัติรวบรวมหายไป! = !(left == right)ผู้ประกอบการเป็น ฉันเข้าใจว่ามีบางกรณีที่มุมแปลก ๆ ที่บางหน่วยงานอาจไม่เท่ากันหรือไม่เท่ากัน (เช่น IEEE-754 NaN) แต่สิ่งเหล่านั้นดูเหมือนเป็นข้อยกเว้นไม่ใช่กฎ ดังนั้นนี่ไม่ได้อธิบายว่าทำไมนักออกแบบคอมไพเลอร์ C # จึงได้ยกเว้นกฎ ฉันเคยเห็นกรณีของฝีมือไม่ดีที่กำหนดตัวดำเนินการความเท่าเทียมกันจากนั้นผู้ดำเนินการความไม่เท่าเทียมกันจะเป็นสำเนาคัดลอกที่มีการเปรียบเทียบแต่ละรายการที่ย้อนกลับและทุก && เปลี่ยนเป็น | | (คุณได้รับจุด ... โดยทั่วไป! (a == b) ขยายผ่านกฎของ De Morgan) นั่นเป็นวิธีปฏิบัติที่ไม่ดีที่ผู้รวบรวมสามารถกำจัดได้โดยการออกแบบเช่นเดียวกับ Lua หมายเหตุ: …


11
ฉันจะสร้างกล่องข้อความด้วยตัวเลือก“ ใช่”,“ ไม่” และ DialogResult ได้อย่างไร?
ฉันต้องการทำให้กล่องข้อความเป็นแบบง่าย / ไม่เลือกใช่ แต่ฉันคิดว่ามันไร้สาระในการออกแบบฟอร์มสำหรับสิ่งนั้น ฉันคิดว่าฉันสามารถใช้ MessageBox เพิ่มปุ่ม ฯลฯ เพื่อทำสิ่งนี้ให้สำเร็จ มันง่าย แต่เนื่องจากไม่มี DialogResult ส่งคืนฉันจะดึงผลลัพธ์ได้อย่างไร

30
ใน. NET วงใดทำงานเร็วกว่า 'for' หรือ 'foreach'
ใน C # / VB.NET / .NET ซึ่งห่วงทำงานได้เร็วขึ้นforหรือforeach? นับตั้งแต่ฉันอ่านว่าforลูปทำงานได้เร็วกว่าforeachลูปเมื่อนานมาแล้วฉันถือว่ามันเป็นจริงสำหรับคอลเลกชันทั้งหมดคอลเลกชันทั่วไปอาร์เรย์ทั้งหมด ฯลฯ ฉันเฆี่ยนตี Google และพบบทความไม่กี่บทความ แต่ส่วนใหญ่ยังสรุปไม่ได้ (อ่านความคิดเห็นเกี่ยวกับบทความ) และสิ้นสุดวันที่เปิด สิ่งที่จะเหมาะคือการแสดงรายการแต่ละสถานการณ์และทางออกที่ดีที่สุดสำหรับเรื่องเดียวกัน ตัวอย่างเช่น (เป็นเพียงตัวอย่างว่าควรจะเป็นอย่างไร): สำหรับการวนซ้ำสตริงที่forมีมากกว่า1,000 รายการจะดีกว่าforeach สำหรับการวนซ้ำIListสตริง (ไม่ใช่ทั่วไป) - foreachดีกว่าfor พบการอ้างอิงบางอย่างบนเว็บสำหรับสิ่งเดียวกัน: ต้นฉบับบทความเก่าแก่ที่ยิ่งใหญ่โดย Emmanuel Schanzer CodeProject เทียบกับ FOREACH สำหรับ บล็อก - เพื่อforeachหรือไม่foreachนั่นคือคำถาม ฟอรัม ASP.NET - NET 1.1 C # forกับforeach [แก้ไข] นอกจากความสามารถในการอ่านของมันฉันยังสนใจในข้อเท็จจริงและตัวเลข มีแอพพลิเคชั่นที่การบีบอัดประสิทธิภาพการทำงานให้มีประสิทธิภาพ
345 c#  .net  performance  for-loop 

7
Byte [] Array สามารถเขียนไปยังไฟล์ใน C # ได้หรือไม่?
ฉันพยายามเขียน Byte[]อาร์เรย์ที่แสดงถึงไฟล์ที่สมบูรณ์ลงในไฟล์ ไฟล์ต้นฉบับจากไคลเอนต์จะถูกส่งผ่าน TCP และจากนั้นเซิร์ฟเวอร์จะได้รับ กระแสข้อมูลที่ได้รับจะถูกอ่านไปยังอาร์เรย์ไบต์แล้วส่งไปประมวลผลโดยชั้นนี้ นี่คือหลักเพื่อให้แน่ใจว่าการรับTCPClientพร้อมสำหรับกระแสถัดไปและแยกปลายการรับจากจุดสิ้นสุดการประมวลผล FileStreamชั้นไม่ได้ใช้อาร์เรย์ไบต์เป็นอาร์กิวเมนต์หรือวัตถุอื่นสตรีม (ซึ่งไม่อนุญาตให้คุณเขียนไบต์ไป) ฉันตั้งเป้าที่จะทำการประมวลผลโดยเธรดที่แตกต่างจากต้นฉบับ (อันที่มี TCPClient) ฉันไม่ทราบวิธีการใช้สิ่งนี้ฉันควรลองทำอย่างไร
344 c#  .net 

13
เธรดการโทรไม่สามารถเข้าถึงวัตถุนี้ได้เนื่องจากเธรดอื่นเป็นเจ้าของ
รหัสของฉันเป็นดังนี้ public CountryStandards() { InitializeComponent(); try { FillPageControls(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Country Standards", MessageBoxButton.OK, MessageBoxImage.Error); } } /// <summary> /// Fills the page controls. /// </summary> private void FillPageControls() { popUpProgressBar.IsOpen = true; lblProgress.Content = "Loading. Please wait..."; progress.IsIndeterminate = true; worker = new BackgroundWorker(); worker.DoWork += …

12
วิธีที่ง่ายที่สุดในการอ่านและเขียนไฟล์
มีหลายวิธีในการอ่านและเขียนไฟล์ ( ไฟล์ข้อความไม่ใช่ไบนารี) ใน C # ฉันต้องการสิ่งที่ง่ายและใช้รหัสน้อยที่สุดเพราะฉันจะทำงานกับไฟล์จำนวนมากในโครงการของฉัน ฉันต้องการเพียงบางสิ่งบางอย่างstringตั้งแต่ทั้งหมดที่ฉันต้องการก็คือการอ่านและเขียนstrings
342 c#  .net  string  file  file-io 

15
ฉันจะเรียกใช้รหัสง่ายๆในเธรดใหม่ได้อย่างไร
ฉันมีรหัสเล็กน้อยที่ฉันต้องการเรียกใช้ในเธรดที่แตกต่างจาก GUI เนื่องจากมันทำให้ฟอร์มหยุดทำงานในขณะที่โค้ดทำงาน (10 วินาทีหรือมากกว่านั้น) สมมติว่าฉันไม่เคยสร้างเธรดใหม่มาก่อน ตัวอย่างง่ายๆ / พื้นฐานของวิธีทำสิ่งนี้ใน C # และการใช้. NET Framework 2.0 หรือใหม่กว่าคืออะไร
340 c#  .net  multithreading 

13
การเข้ารหัส URL โดยใช้ C #
ฉันมีแอปพลิเคชันซึ่งส่งคำขอ POST ไปยังซอฟต์แวร์ฟอรัม VB และบันทึกบางคนใน เมื่อผู้ใช้เข้าสู่ระบบฉันสร้างตัวแปรที่สร้างเส้นทางบนเครื่องของพวกเขา C: \ tempfolder \ วัน \ ชื่อผู้ใช้ ปัญหาคือชื่อผู้ใช้บางรายกำลังมีข้อยกเว้น "ตัวอักษรที่ผิดกฎหมาย" ตัวอย่างเช่นถ้าชื่อผู้ใช้ของฉันmas|fenixมันจะเป็นข้อยกเว้น .. Path.Combine( _ Environment.GetFolderPath(System.Environment.SpecialFolder.CommonApplicationData), _ DateTime.Now.ToString("ddMMyyhhmm") + "-" + form1.username) ฉันไม่ต้องการลบออกจากสตริง แต่โฟลเดอร์ที่มีชื่อผู้ใช้จะถูกสร้างขึ้นผ่าน FTP บนเซิร์ฟเวอร์ และนี่นำไปสู่คำถามที่สองของฉัน หากฉันกำลังสร้างโฟลเดอร์บนเซิร์ฟเวอร์ฉันสามารถปล่อย "ตัวอักษรที่ผิดกฎหมาย" ไว้ได้หรือไม่? ฉันถามสิ่งนี้เพราะเซิร์ฟเวอร์ใช้ Linux และฉันไม่แน่ใจว่า Linux ยอมรับหรือไม่ แก้ไข: ดูเหมือนว่าการเข้ารหัส URL ไม่ใช่สิ่งที่ฉันต้องการ .. นี่คือสิ่งที่ฉันต้องการจะทำ: old username = mas|fenix new …
340 c#  .net  urlencode 


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