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

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

15
คุณทำการทดสอบหน่วยในโครงการเดียวกันหรือโครงการอื่นหรือไม่
คุณใส่การทดสอบหน่วยในโครงการเดียวกันเพื่อความสะดวกหรือคุณวางการทดสอบแยกต่างหากหรือไม่? หากคุณใส่พวกเขาในการชุมนุมแยกต่างหากเช่นที่เราทำเราจะจบลงด้วยจำนวนโครงการพิเศษในการแก้ปัญหา มันยอดเยี่ยมสำหรับการทดสอบหน่วยในขณะที่เขียนโค้ด แต่คุณจะปล่อยแอพพลิเคชั่นอย่างไรโดยไม่ต้องมีชุดประกอบพิเศษเหล่านี้ทั้งหมด?
137 c#  unit-testing 

16
แปลงสตริงเป็นชนิด nullable (int, double, etc …)
ฉันพยายามแปลงข้อมูลบางอย่าง น่าเสียดายที่ข้อมูลส่วนใหญ่อยู่ในสตริงซึ่งควรเป็น int หรือ double เป็นต้น ดังนั้นสิ่งที่ฉันมีคือ: double? amount = Convert.ToDouble(strAmount); ปัญหาของวิธีนี้คือถ้า strAmount ว่างเปล่าถ้ามันว่างเปล่าฉันต้องการให้มันเป็นจำนวนว่างดังนั้นเมื่อฉันเพิ่มลงในฐานข้อมูลคอลัมน์จะเป็นโมฆะ ดังนั้นฉันจึงลงเอยด้วยการเขียนสิ่งนี้: double? amount = null; if(strAmount.Trim().Length>0) { amount = Convert.ToDouble(strAmount); } ตอนนี้ใช้ได้ดี แต่ตอนนี้ฉันมีโค้ดห้าบรรทัดแทนที่จะเป็นหนึ่งบรรทัด สิ่งนี้ทำให้อ่านยากขึ้นเล็กน้อยโดยเฉพาะเมื่อฉันมีคอลัมน์จำนวนมากที่ต้องแปลง ฉันคิดว่าฉันจะใช้ส่วนขยายของคลาสสตริงและของทั่วไปเพื่อส่งเป็นประเภทเพราะนี่อาจเป็น double หรือ int หรือยาวก็ได้ ดังนั้นฉันจึงลองทำสิ่งนี้: public static class GenericExtension { public static Nullable<T> ConvertToNullable<T>(this string s, T type) where T: struct …

9
ฉันควรเลือกฟังก์ชันแฮชการเข้ารหัสลับแบบใด
กรอบงาน. NET มาพร้อมกับอัลกอริทึมการแฮช 6 แบบ: MD5: 16 ไบต์ (เวลาที่แฮช 500MB: 1462 ms) SHA-1: 20 ไบต์ (1644 มิลลิวินาที) SHA256: 32 ไบต์ (5618 ms) SHA384: 48 ไบต์ (3839 มิลลิวินาที) SHA512: 64 ไบต์ (3820 มิลลิวินาที) RIPEMD: 20 ไบต์ (7066 ms) แต่ละฟังก์ชันเหล่านี้ทำงานแตกต่างกัน MD5 นั้นเร็วที่สุดและ RIPEMD นั้นช้าที่สุด MD5 มีข้อได้เปรียบที่เหมาะกับ Guid ประเภทในตัว; และมันก็เป็นพื้นฐานของประเภท 3 UUID แฮช …


5
ใช้ async-await บน. net 4
ขณะนี้ฉันเริ่มสร้างแอปพลิเคชันที่จะได้รับประโยชน์มากมายจากคุณลักษณะ async ที่รอคอยของ C # 5 แต่ฉันไม่แน่ใจว่าเวอร์ชัน VS และรันไทม์ async ที่จะใช้ เมื่อดูที่ชาร์ตยอดนิยมของ OS ฉันจะต้องรองรับ Windows XP อีกสามปี ดูเหมือนว่า. net 4.5 จะทำงานบน Windows รุ่นใหม่กว่าเท่านั้นดังนั้นฉันต้องกำหนดเป้าหมาย. net 4.0 เครื่องพัฒนาใช้ Windows 7 ดังนั้นการใช้ VS เวอร์ชันที่ใหม่กว่าจึงไม่ใช่ปัญหา ตอนนี้ฉันต้องเลือกคอมไพเลอร์ก่อนเพื่อทำสิ่งนี้: VS2010 พร้อม AsyncCTP ดูตัวอย่าง VS2012 (และสุดท้ายเมื่อมาถึง) ตั้งค่าเป้าหมายเป็น. net 4.0 Mono (ดูเหมือนว่า 2.12 มี async-await, ฉันชอบ / ฉันคุ้นเคยกับ VS …

2
บูลีนขนาดเท่าไหร่ใน C #? มันใช้เวลา 4 ไบต์จริงเหรอ?
ฉันมีสองโครงสร้างด้วยอาร์เรย์ของไบต์และบูลีน: using System.Runtime.InteropServices; [StructLayout(LayoutKind.Sequential, Pack = 4)] struct struct1 { [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] values; } [StructLayout(LayoutKind.Sequential, Pack = 4)] struct struct2 { [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public bool[] values; } และรหัสต่อไปนี้: class main { public static void Main() { Console.WriteLine("sizeof array of bytes: "+Marshal.SizeOf(typeof(struct1))); Console.WriteLine("sizeof array of …
137 c#  interop 

8
การระบุรูปแบบ DateTime แบบกำหนดเองเมื่อทำการจัดลำดับด้วย Json.Net
ฉันกำลังพัฒนา API เพื่อเปิดเผยข้อมูลบางอย่างโดยใช้ ASP.NET Web API ในหนึ่งใน API ลูกค้าต้องการให้เราเปิดเผยวันที่ในyyyy-MM-ddรูปแบบ ฉันไม่ต้องการเปลี่ยนการตั้งค่าส่วนกลาง (เช่นGlobalConfiguration.Configuration.Formatters.JsonFormatter) สำหรับสิ่งนั้นเนื่องจากมีความเฉพาะเจาะจงสำหรับลูกค้า และฉันจะพัฒนาสิ่งนั้นในโซลูชันสำหรับลูกค้าหลายราย หนึ่งในวิธีการแก้ปัญหาที่ฉันคิดได้ก็คือการสร้างกำหนดเองJsonConverterจากนั้นนำไปใช้กับคุณสมบัติที่ฉันต้องใช้ในการจัดรูปแบบที่กำหนดเอง เช่น class ReturnObjectA { [JsonConverter(typeof(CustomDateTimeConverter))] public DateTime ReturnDate { get;set;} } แค่สงสัยว่ามีวิธีอื่นที่ง่ายกว่าในการทำเช่นนั้น

7
ฉันจะทำให้ฉลากอยู่กึ่งกลางใน WinForms ได้อย่างไร
ในWinFormsฉันใช้Labelเพื่อแสดงข้อความที่แตกต่างกันเช่นความสำเร็จความล้มเหลว ฯลฯ ฉันต้องการจัดกึ่งกลางของป้ายกำกับนั้นในรูปแบบกึ่งกลาง ฉันต้องการทางออกที่จะทำให้มันเป็นศูนย์กลางไม่ว่าจะมีเพียงหนึ่งคำหรือทั้งประโยคในฉลาก
137 c#  .net  winforms  centering 



6
คุณสามารถกำหนดค่า log4net ในรหัสแทนการใช้ไฟล์กำหนดค่าได้หรือไม่?
ฉันเข้าใจว่าเหตุใด log4net จึงใช้app.configไฟล์ในการตั้งค่าการบันทึกดังนั้นคุณจึงสามารถเปลี่ยนวิธีบันทึกข้อมูลได้อย่างง่ายดายโดยไม่จำเป็นต้องคอมไพล์โค้ดของคุณใหม่ แต่ในกรณีของฉันฉันไม่ต้องการแพ็คapp.configไฟล์ด้วยปฏิบัติการของฉัน และฉันไม่ต้องการแก้ไขการตั้งค่าการบันทึกของฉัน มีวิธีให้ฉันตั้งค่ารหัสเข้าสู่ระบบแทนที่จะใช้app.configหรือไม่ นี่คือไฟล์กำหนดค่าอย่างง่ายของฉัน: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="Logs\EventLog.txt" /> <appendToFile value="false" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="5" /> <maximumFileSize value="1GB" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> …
137 c#  .net  logging  log4net 

7
การกรอก DataSet หรือ DataTable จากชุดผลลัพธ์การสืบค้น LINQ
คุณแสดงแบบสอบถาม LINQ เป็นบริการเว็บ ASMX ได้อย่างไร โดยปกติแล้วจากระดับธุรกิจฉันสามารถส่งคืนพิมพ์ที่พิมพ์DataSetหรือDataTableที่สามารถต่ออนุกรมสำหรับการขนส่งผ่าน ASMX ได้ ฉันจะทำเช่นเดียวกันกับแบบสอบถาม LINQ ได้อย่างไร มีวิธีเติมข้อมูลที่พิมพ์DataSetหรือDataTableผ่านแบบสอบถาม LINQ หรือไม่? public static MyDataTable CallMySproc() { string conn = "..."; MyDatabaseDataContext db = new MyDatabaseDataContext(conn); MyDataTable dt = new MyDataTable(); // execute a sproc via LINQ var query = from dr in db.MySproc().AsEnumerable select dr; // copy …

18
วิธีเปรียบเทียบ 2 ไฟล์อย่างรวดเร็วโดยใช้. NET
วิธีการทั่วไปแนะนำให้อ่านไบนารีผ่าน FileStream และเปรียบเทียบแบบไบต์ต่อไบต์ การเปรียบเทียบ checksum เช่น CRC จะเร็วกว่าหรือไม่? มีไลบรารี. NET ที่สามารถสร้างการตรวจสอบสำหรับไฟล์หรือไม่
137 c#  file  compare  checksum 

7
คุณลักษณะ C # 6.0 ไม่ทำงานกับ Visual Studio 2015
ฉันกำลังทดสอบ Visual Studio 2015 กับ C # 6.0 แต่ฟีเจอร์ภาษาไม่ทำงาน ในแอปพลิเคชันเว็บ MVC โค้ดต่อไปนี้จะรวบรวม: if (!string.IsNullOrWhiteSpace(Model.Profile?.TypeName)) { // More logic here... } อย่างไรก็ตามเมื่อฉันเรียกใช้แอปพลิเคชันผ่าน Debug และ IIS Express ฉันได้รับข้อผิดพลาดต่อไปนี้: CS1525: เงื่อนไขของนิพจน์ไม่ถูกต้อง "." ฉันจะเปิดใช้งานคุณสมบัติเหล่านี้ได้อย่างไร?

6
ฉันจะยูนิตทดสอบวิธีการดำเนินการ API ของเว็บเมื่อส่งคืน IHttpActionResult ได้อย่างไร
สมมติว่านี่เป็นวิธีการดำเนินการของฉัน public IHttpActionResult Get(int id) { var status = GetSomething(id); if (status) { return Ok(); } else { return NotFound(); } } การทดสอบจะเป็น var httpActionResult = controller.Get(1); ฉันจะตรวจสอบรหัสสถานะ http ของฉันหลังจากนี้ได้อย่างไร?

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