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

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

18
ค่าไม่สามารถเป็นค่าว่างได้ ชื่อพารามิเตอร์: แหล่งที่มา
นี่อาจเป็นปัญหาเสียเวลาที่ใหญ่ที่สุดที่ฉันใช้เวลาหลายชั่วโมงในการแก้ปัญหาเป็นเวลานาน var db = new hublisherEntities(); establishment_brands est = new establishment_brands(); est.brand_id = 1; est.establishment_id = 1; est.price = collection["price"]; est.size = collection["size"]; db.establishment_brands.Add(est); db.SaveChanges(); สิ่งนี้ทำให้ฉันมีข้อผิดพลาด ค่าไม่สามารถเป็นค่าว่างได้ ชื่อพารามิเตอร์: แหล่งที่มา stacktrace ของ [ArgumentNullException: ค่าไม่สามารถเป็นค่าว่างได้ ชื่อพารามิเตอร์: source] System.Linq.Enumerable.Any (IEnumerable 1 source, Func2 เพรดิเคต) +4083335 System.Data.Entity.Internal.InternalContext.WrapUpdateException (UpdateException updateException) +87 System.Data.Entity.Internal.InternalContext.SaveChanges () + 193 …

16
การหล่ออินเทอร์เฟซสำหรับ deserialization ใน JSON.NET
ฉันกำลังพยายามตั้งค่าเครื่องอ่านที่จะรับวัตถุ JSON จากเว็บไซต์ต่างๆ (คิดว่าการขูดข้อมูล) และแปลเป็นวัตถุ C # ฉันกำลังใช้ JSON.NET สำหรับกระบวนการ deserialization ปัญหาที่ฉันพบคือไม่ทราบวิธีจัดการคุณสมบัติระดับอินเตอร์เฟสในคลาส ดังนั้นบางอย่างของธรรมชาติ: public IThingy Thing จะทำให้เกิดข้อผิดพลาด: ไม่สามารถสร้างอินสแตนซ์ประเภท IThingy Type เป็นอินเทอร์เฟซหรือคลาสนามธรรมและไม่สามารถสร้างอินสแตนซ์ได้ มันค่อนข้างสำคัญที่จะต้องเป็น IThingy เมื่อเทียบกับ Thingy เนื่องจากโค้ดที่ฉันกำลังทำงานอยู่นั้นถือว่ามีความละเอียดอ่อนและการทดสอบหน่วยเป็นสิ่งที่สำคัญมาก การจำลองวัตถุสำหรับสคริปต์ทดสอบอะตอมไม่สามารถทำได้กับวัตถุที่มีคุณสมบัติครบถ้วนเช่น Thingy ต้องเป็นอินเทอร์เฟซ ฉันอ่านเอกสารของ JSON.NET มาระยะหนึ่งแล้วและคำถามที่ฉันพบในไซต์นี้ที่เกี่ยวข้องกับเรื่องนี้ล้วนมาจากปีที่แล้ว ความช่วยเหลือใด ๆ นอกจากนี้หากเป็นเรื่องสำคัญแอปของฉันเขียนด้วย. NET 4.0
129 c#  .net  json  json.net 

15
EF Core Mapping EntityTypeConfiguration
โดยปกติแล้วใน EF6 เราสามารถใช้วิธีนี้เพื่อกำหนดค่าเอนทิตีได้ public class AccountMap : EntityTypeConfiguration<Account> { public AccountMap() { ToTable("Account"); HasKey(a => a.Id); Property(a => a.Username).HasMaxLength(50); Property(a => a.Email).HasMaxLength(255); Property(a => a.Name).HasMaxLength(255); } } เราจะทำอย่างไรใน EF Core เนื่องจากเมื่อคลาส I Inherit EntityTypeConfiguration ที่ไม่สามารถค้นหาคลาสได้ ฉันดาวน์โหลดซอร์สโค้ดดิบของ EF Core จาก GitHub ไม่พบ ใครสามารถช่วยในเรื่องนี้?

26
การคำนวณส่วนต่างเป็นเดือนระหว่างวันที่สองวัน
ใน C # /. NET TimeSpanมีTotalDays, TotalMinutesฯลฯ แต่ฉันไม่สามารถคิดออกสูตรสำหรับความแตกต่างรวมเดือน วันแปรผันต่อเดือนและปีอธิกสุรทินยังคงทิ้งฉันไว้ ฉันจะรับTotalMonthsได้อย่างไร แก้ไขขออภัยที่ไม่ชัดเจนยิ่งขึ้น: ฉันรู้ว่าฉันไม่สามารถรับสิ่งนี้ได้จริง ๆTimeSpanแต่ฉันคิดว่าใช้TotalDaysแล้วและTotalMinutesจะเป็นตัวอย่างที่ดีในการแสดงสิ่งที่ฉันกำลังมองหา ... ยกเว้นฉันกำลังพยายามหาจำนวนเดือนทั้งหมด ตัวอย่าง: 25 ธันวาคม 2009 - 6 ตุลาคม 2009 = 2 เดือนรวม 6 ตุลาคมถึง 5 พฤศจิกายนเท่ากับ 0 เดือน ในวันที่ 6 พ.ย. 1 เดือน ในวันที่ 6 ธันวาคม 2 เดือน
128 c#  .net  datetime  timespan 

9
วิธีที่เร็วที่สุดในการสร้างการตรวจสอบสำหรับไฟล์ขนาดใหญ่ใน C # คืออะไร
ฉันต้องซิงค์ไฟล์ขนาดใหญ่ในเครื่องบางเครื่อง ไฟล์สามารถมีขนาดสูงสุด 6GB การซิงค์จะดำเนินการด้วยตนเองทุกสองสามสัปดาห์ ฉันไม่สามารถนำชื่อไฟล์มาพิจารณาเพราะพวกเขาสามารถเปลี่ยนแปลงได้ตลอดเวลา แผนของฉันคือสร้าง checksums บนพีซีปลายทางและบนพีซีต้นทางแล้วคัดลอกไฟล์ทั้งหมดที่มี checksum ซึ่งไม่ได้อยู่ในปลายทางไปยังปลายทางแล้ว ความพยายามครั้งแรกของฉันคือสิ่งนี้: using System.IO; using System.Security.Cryptography; private static string GetChecksum(string file) { using (FileStream stream = File.OpenRead(file)) { SHA256Managed sha = new SHA256Managed(); byte[] checksum = sha.ComputeHash(stream); return BitConverter.ToString(checksum).Replace("-", String.Empty); } } ปัญหาคือรันไทม์: - ด้วย SHA256 พร้อมไฟล์ 1,6 GB -> 20 …
128 c#  .net  large-files  checksum 

7
การแสดงออกของ C # ลอย: พฤติกรรมแปลก ๆ เมื่อส่งผลลอยไปยัง int
ฉันมีรหัสง่ายๆดังต่อไปนี้: int speed1 = (int)(6.2f * 10); float tmp = 6.2f * 10; int speed2 = (int)tmp; speed1และspeed2ควรมีค่าเท่ากัน แต่อันที่จริงฉันมี: speed1 = 61 speed2 = 62 ฉันรู้ว่าฉันควรใช้ Math.Round แทนการคัดเลือกนักแสดง แต่ฉันต้องการที่จะเข้าใจว่าทำไมค่าต่างกัน ฉันดูโค้ดไบต์ที่สร้างขึ้น แต่ยกเว้นร้านค้าและโหลด opcodes เหมือนกัน ฉันยังลองรหัสเดียวกันใน java และฉันได้รับ 62 และ 62 อย่างถูกต้อง มีคนอธิบายเรื่องนี้ได้ไหม แก้ไข: ในรหัสจริงมันไม่ได้โดยตรง 6.2f * 10 แต่ฟังก์ชั่นการโทร * ค่าคงที่ ฉันมีรหัสไบต์ต่อไปนี้: …

9
แสดงความคิดเห็นอินเทอร์เฟซการใช้งานหรือทั้งสองอย่าง?
ฉันคิดว่าเราทุกคน (เมื่อเราสามารถใส่ใจ!) แสดงความคิดเห็นอินเทอร์เฟซของเรา เช่น /// <summary> /// Foo Interface /// </summary> public interface Foo { /// <summary> /// Will 'bar' /// </summary> /// <param name="wibble">Wibble factor</param> void Bar(string wibble); } คุณยังแสดงความคิดเห็นการดำเนินการ (ซึ่งอาจมีให้กับลูกค้าเช่นเป็นส่วนหนึ่งของห้องสมุด aa)? ถ้าเป็นเช่นนั้นคุณจะจัดการทำให้ทั้งสองซิงค์กันได้อย่างไร หรือคุณเพียงแค่เพิ่มความคิดเห็น 'ดูอินเตอร์เฟซสำหรับเอกสารประกอบ'? ขอบคุณ
128 c#  java  comments  interface 

3
ทำไม TypedReference ถึงอยู่เบื้องหลัง มันเร็วและปลอดภัย…เกือบมีมนต์ขลัง!
คำเตือน: คำถามนี้เป็นเรื่องนอกรีตนักเขียนโปรแกรมทางศาสนาปฏิบัติตามแนวปฏิบัติที่ดีเสมอโปรดอย่าอ่าน :) มีใครรู้บ้างไหมว่าทำไมการใช้TypedReferenceจึงเป็นสิ่งที่ทำให้หมดกำลังใจ (โดยปริยายโดยไม่มีเอกสารประกอบ) ฉันพบการใช้งานที่ยอดเยี่ยมสำหรับมันเช่นเมื่อส่งพารามิเตอร์ทั่วไปผ่านฟังก์ชั่นที่ไม่ควรเป็นแบบทั่วไป (เมื่อใช้objectอาจจะ overkill หรือช้าถ้าคุณต้องการประเภทค่า) สำหรับเมื่อคุณต้องการตัวชี้ทึบแสงหรือ สำหรับเมื่อคุณต้องการเข้าถึงองค์ประกอบของอาร์เรย์ได้อย่างรวดเร็วซึ่งมีรายละเอียดที่คุณพบที่รันไทม์ (โดยใช้Array.InternalGetReference) เนื่องจาก CLR ไม่อนุญาตการใช้งานประเภทนี้อย่างไม่ถูกต้องทำไมจึงหมดกำลังใจ ดูเหมือนจะไม่ปลอดภัยหรืออะไร ... การใช้งานอื่น ๆ ที่ฉันได้พบTypedReference: Generic "เชี่ยวชาญ" ใน C # (นี่คือประเภทที่ปลอดภัย): static void foo<T>(ref T value) { //This is the ONLY way to treat value as int, without boxing/unboxing objects if (value is int) { …
128 c#  typedreference 

7
การทำให้เป็นอนุกรม XML - ซ่อนค่า null
เมื่อใช้ Serializer .NET Xml มาตรฐานมีวิธีใดบ้างที่ฉันสามารถซ่อนค่า null ทั้งหมดได้ ด้านล่างนี้เป็นตัวอย่างผลลัพธ์ของคลาสของฉัน ฉันไม่ต้องการส่งออกจำนวนเต็มที่เป็นโมฆะได้หากตั้งค่าเป็น null เอาต์พุต Xml ปัจจุบัน: <?xml version="1.0" encoding="utf-8"?> <myClass> <myNullableInt p2:nil="true" xmlns:p2="http://www.w3.org/2001/XMLSchema-instance" /> <myOtherInt>-1</myOtherInt> </myClass> สิ่งที่ฉันต้องการ: <?xml version="1.0" encoding="utf-8"?> <myClass> <myOtherInt>-1</myOtherInt> </myClass>

11
MVC ซึ่งกดปุ่มส่งแล้ว
ฉันมีสองปุ่มในแบบฟอร์ม MVC ของฉัน: <input name="submit" type="submit" id="submit" value="Save" /> <input name="process" type="submit" id="process" value="Process" /> จากการกระทำของคอนโทรลเลอร์ฉันจะรู้ได้อย่างไรว่าอันไหนถูกกด?
128 c#  asp.net  asp.net-mvc  razor 

4
อะไรคือความแตกต่างระหว่างการคืนค่าว่างเปล่าและการส่งคืนงาน?
ในการมองในหลาย ๆ ตัวอย่าง C # Async CTP ผมเห็นบาง async หน้าที่ว่าการกลับมาvoidและคนอื่น ๆ Taskที่ส่งกลับไม่ใช่ทั่วไป ฉันเห็นว่าเหตุใดการส่งคืน a Task<MyType>จึงมีประโยชน์ในการส่งคืนข้อมูลไปยังผู้โทรเมื่อการดำเนินการ async เสร็จสิ้น แต่ฟังก์ชันที่ฉันเห็นว่ามีประเภทการTaskส่งคืนไม่ส่งคืนข้อมูลใด ๆ ทำไมไม่กลับvoidล่ะ

10
การสร้างพจนานุกรมคงที่ใน C #
วิธีใดที่มีประสิทธิภาพที่สุดในการสร้างการแม็ปค่าคงที่ (ไม่เปลี่ยนแปลงที่รันไทม์) ของstrings ถึงints คืออะไร ฉันได้ลองใช้const Dictionaryแล้ว แต่ก็ไม่ได้ผล ฉันสามารถใช้กระดาษห่อหุ้มที่ไม่เปลี่ยนรูปได้ด้วยความหมายที่เหมาะสม แต่ก็ยังดูไม่ถูกต้องทั้งหมด สำหรับผู้ที่ถามฉันกำลังใช้IDataErrorInfoในคลาสที่สร้างขึ้นและกำลังมองหาวิธีที่จะทำให้การค้นหา columnName ในอาร์เรย์ของตัวอธิบายของฉัน ฉันไม่รู้ (พิมพ์ผิดเมื่อทดสอบ! d'oh!) สวิตช์ที่ยอมรับสตริงนั่นคือสิ่งที่ฉันจะใช้ ขอบคุณ!

6
เป็นการปฏิบัติที่ไม่ดีที่จะกลับมาจากภายใน try catch ในที่สุดหรือไม่?
เช้านี้ฉันเจอโค้ดบางอย่างที่มีลักษณะดังนี้: try { x = SomeThingDangerous(); return x; } catch (Exception ex) { throw new DangerousException(ex); } finally { CleanUpDangerousStuff(); } ตอนนี้รหัสนี้รวบรวมได้ดีและทำงานได้ตามที่ควร แต่ก็ไม่รู้สึกถูกต้องที่จะกลับมาจากภายใน try block โดยเฉพาะอย่างยิ่งหากมีการเชื่อมโยงในที่สุด ปัญหาหลักของฉันคือจะเกิดอะไรขึ้นถ้าในที่สุดก็มีข้อยกเว้นของตัวเอง? คุณมีตัวแปรที่ส่งคืนแล้ว แต่ยังมีข้อยกเว้นในการจัดการด้วย ... ดังนั้นฉันจึงสนใจที่จะรู้ว่าคนอื่นคิดอย่างไรเกี่ยวกับการกลับมาจากในบล็อกลอง?


2
จะเขียนความคิดเห็นในมุมมอง Razor ได้อย่างไร?
วิธีเขียนความคิดเห็นในมุมมอง MVC ซึ่งจะไม่ถูกส่งไปยัง HTML สุดท้าย (เช่นเบราว์เซอร์เพื่อตอบกลับ) สามารถแสดงความคิดเห็นด้วย: <!--<a href="https://stackoverflow.com/">My comment</a> --> แต่สามารถมองเห็นได้ในซอร์สโค้ดของเพจในเบราว์เซอร์ เป็นไปได้ไหมที่จะแสดงความคิดเห็นในไฟล์ ".cshtml" สำหรับการใช้งานภายในเท่านั้น

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