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

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

7
ฉันจะได้รับรายชื่อที่แตกต่างกันตามลำดับจาก DataTable โดยใช้ LINQ ได้อย่างไร
ฉันมีDataTableกับNameคอลัมน์ ฉันต้องการสร้างชุดชื่อเฉพาะที่เรียงตามตัวอักษร แบบสอบถามต่อไปนี้ละเว้นลำดับตามอนุประโยค var names = (from DataRow dr in dataTable.Rows orderby (string)dr["Name"] select (string)dr["Name"]).Distinct(); เหตุใดจึงorderbyไม่ถูกบังคับใช้?
104 c#  linq  .net-3.5 

9
Web API 2: วิธีส่งคืน JSON ด้วยชื่อคุณสมบัติ camelCased บนอ็อบเจ็กต์และอ็อบเจ็กต์ย่อย
อัปเดต ขอบคุณสำหรับคำตอบทั้งหมด ฉันอยู่ในโปรเจ็กต์ใหม่และดูเหมือนว่าในที่สุดฉันก็มาถึงจุดต่ำสุดของสิ่งนี้: ดูเหมือนว่ารหัสต่อไปนี้จะถูกตำหนิ: public static HttpResponseMessage GetHttpSuccessResponse(object response, HttpStatusCode code = HttpStatusCode.OK) { return new HttpResponseMessage() { StatusCode = code, Content = response != null ? new JsonContent(response) : null }; } ที่อื่น ... public JsonContent(object obj) { var encoded = JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore …

14
ระงับคำเตือน CS1998: วิธีการ async นี้ไม่มี 'รอ'
ฉันมีอินเทอร์เฟซที่มีฟังก์ชัน async บางอย่าง บางคลาสที่ใช้อินเทอร์เฟซไม่ได้มีอะไรให้รอและบางคลาสอาจจะโยนทิ้ง มันน่ารำคาญเล็กน้อยกับคำเตือนทั้งหมด เมื่อไม่ใช้ await ในฟังก์ชัน async สามารถระงับข้อความได้หรือไม่? public async Task<object> test() { throw new NotImplementedException(); } คำเตือน CS1998: วิธีการ async นี้ไม่มีตัวดำเนินการ "รอ" และจะทำงานพร้อมกัน พิจารณาใช้ตัวดำเนินการ 'await' เพื่อรอการเรียก API ที่ไม่ปิดกั้นหรือ 'await Task.Run (... )' เพื่อทำงานที่ผูกกับ CPU บนเธรดพื้นหลัง
104 c#  asynchronous 

6
ปั๊มข้อความคืออะไร?
ในชุดข้อความนี้ (โพสต์เมื่อประมาณหนึ่งปีที่แล้ว) มีการอภิปรายเกี่ยวกับปัญหาที่อาจมาพร้อมกับการรัน Word ในเซสชันที่ไม่โต้ตอบ คำแนะนำ (ค่อนข้างรัดกุม) ที่ให้ไว้นั้นไม่ควรทำเช่นนั้น ในโพสต์หนึ่งมีการระบุว่า "Office API ทั้งหมดถือว่าคุณใช้งาน Office ในเซสชันแบบโต้ตอบบนเดสก์ท็อปด้วยจอภาพแป้นพิมพ์และเมาส์และที่สำคัญที่สุดคือปั๊มข้อความ" ฉันไม่แน่ใจว่ามันคืออะไร (ฉันเขียนโปรแกรมใน C # มาได้ประมาณหนึ่งปีเท่านั้นประสบการณ์การเขียนโปรแกรมอื่น ๆ ของฉันส่วนใหญ่มาจาก ColdFusion) อัปเดต: โปรแกรมของฉันทำงานผ่านไฟล์ RTF จำนวนมากเพื่อดึงข้อมูลสองส่วนที่ใช้สร้างหมายเลขรายงานทางการแพทย์ แทนที่จะลองดูว่าคำแนะนำการจัดรูปแบบใน RTF ทำงานอย่างไรฉันตัดสินใจเปิดใน Word และดึงข้อความออกจากที่นั่น (โดยไม่ต้องเริ่ม GUI จริง ๆ ) ในบางครั้งโปรแกรมเกิดอาการสะอึกระหว่างการประมวลผลไฟล์เดียวและเปิดเธรด Word ที่แนบมากับเอกสารนั้นทิ้งไว้ (ฉันยังต้องหาวิธีปิดไฟล์นั้น) เมื่อฉันรันโปรแกรมอีกครั้งแน่นอนว่าฉันได้รับการแจ้งเตือนว่ามีเธรดที่ใช้ไฟล์นั้นและฉันต้องการเปิดสำเนาแบบอ่านอย่างเดียวหรือไม่? เมื่อฉันตอบว่าใช่ Word GUI ก็โผล่ขึ้นมาจากที่ไหนเลยและเริ่มประมวลผลไฟล์ ฉันสงสัยว่าทำไมมันถึงเกิดขึ้น

30
จะลบเนมสเปซทั้งหมดออกจาก XML ด้วย C # ได้อย่างไร
ฉันกำลังมองหาโซลูชันที่สะอาดสวยงามและชาญฉลาดในการลบเนมสเปซออกจากองค์ประกอบ XML ทั้งหมดหรือไม่? ฟังก์ชั่นที่จะทำนั้นมีลักษณะอย่างไร? อินเทอร์เฟซที่กำหนด: public interface IXMLUtils { string RemoveAllNamespaces(string xmlDocument); } ตัวอย่าง XML เพื่อลบ NS จาก: <?xml version="1.0" encoding="utf-16"?> <ArrayOfInserts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <insert> <offer xmlns="http://schema.peters.com/doc_353/1/Types">0174587</offer> <type2 xmlns="http://schema.peters.com/doc_353/1/Types">014717</type2> <supplier xmlns="http://schema.peters.com/doc_353/1/Types">019172</supplier> <id_frame xmlns="http://schema.peters.com/doc_353/1/Types" /> <type3 xmlns="http://schema.peters.com/doc_353/1/Types"> <type2 /> <main>false</main> </type3> <status xmlns="http://schema.peters.com/doc_353/1/Types">Some state</status> </insert> </ArrayOfInserts> หลังจากที่เราเรียก RemoveAllNamespaces (xmlWithLotOfNs) เราควรได้รับ: <?xml …
104 c#  xml 

8
การเข้าถึง Google Spreadsheets ด้วย C # โดยใช้ Google Data API
ฉันมีข้อมูลบางอย่างใน Google สเปรดชีตเป็นแผ่นเดียว มีวิธีใดบ้างที่ฉันสามารถอ่านข้อมูลนี้จาก. NET โดยการให้ข้อมูลรับรองของ Google และที่อยู่สเปรดชีต เป็นไปได้ไหมโดยใช้ Google Data API ในที่สุดฉันต้องการข้อมูลจาก Google สเปรดชีตใน DataTable ฉันจะทำมันได้อย่างไร? หากใครลองแล้วโปรดแบ่งปันข้อมูล

3
เหตุใดแอปพลิเคชันของฉันจึงใช้เวลา 24% ของชีวิตในการตรวจสอบค่าว่าง
ฉันมีโครงสร้างการตัดสินใจไบนารีที่สำคัญด้านประสิทธิภาพและฉันต้องการเน้นคำถามนี้ไปที่โค้ดบรรทัดเดียว โค้ดสำหรับตัววนซ้ำต้นไม้ไบนารีอยู่ด้านล่างพร้อมผลลัพธ์จากการรันการวิเคราะห์ประสิทธิภาพเทียบกับมัน public ScTreeNode GetNodeForState(int rootIndex, float[] inputs) { 0.2% ScTreeNode node = RootNodes[rootIndex].TreeNode; 24.6% while (node.BranchData != null) { 0.2% BranchNodeData b = node.BranchData; 0.5% node = b.Child2; 12.8% if (inputs[b.SplitInputIndex] <= b.SplitValue) 0.8% node = b.Child1; } 0.4% return node; } BranchData เป็นฟิลด์ไม่ใช่คุณสมบัติ ฉันทำสิ่งนี้เพื่อป้องกันความเสี่ยงที่มันจะไม่อินไลน์ คลาส BranchNodeData เป็นดังนี้: public …

10
อ่าน / เขียนคุณสมบัติไฟล์ 'ขยาย' (C #)
ฉันกำลังพยายามหาวิธีอ่าน / เขียนไปยังคุณสมบัติไฟล์เพิ่มเติมใน C # เช่น Comment, Bit Rate, Date Accessed, Category ฯลฯ ที่คุณเห็นใน Windows explorer มีความคิดอย่างไรในการทำสิ่งนี้? แก้ไข: ฉันจะอ่าน / เขียนไฟล์วิดีโอเป็นหลัก (AVI / DIVX / ... )

9
รับขนาดภาพโดยไม่ต้องอ่านทั้งไฟล์
มีวิธีที่ถูกในการรับขนาดของภาพ (jpg, png, ... ) หรือไม่? โดยเฉพาะอย่างยิ่งฉันต้องการบรรลุสิ่งนี้โดยใช้เฉพาะไลบรารีคลาสมาตรฐาน (เนื่องจากข้อ จำกัด ในการโฮสต์) ฉันรู้ว่ามันควรจะค่อนข้างง่ายในการอ่านส่วนหัวของรูปภาพและแยกวิเคราะห์ด้วยตัวเอง แต่ดูเหมือนว่าจะมีอะไรแบบนี้อยู่แล้ว นอกจากนี้ฉันได้ตรวจสอบแล้วว่าโค้ดต่อไปนี้อ่านภาพทั้งหมด (ซึ่งฉันไม่ต้องการ): using System; using System.Drawing; namespace Test { class Program { static void Main(string[] args) { Image img = new Bitmap("test.png"); System.Console.WriteLine(img.Width + " x " + img.Height); } } }

11
การเปรียบเทียบตัวอย่างโค้ดขนาดเล็กใน C # การปรับใช้นี้สามารถปรับปรุงได้หรือไม่?
บ่อยครั้งที่ฉันพบว่าตัวเองกำลังเปรียบเทียบโค้ดส่วนเล็ก ๆ เพื่อดูว่า implemnetation ใดที่เร็วที่สุด บ่อยครั้งที่ฉันเห็นความคิดเห็นว่ารหัสการเปรียบเทียบไม่ได้คำนึงถึงการกระตุกหรือตัวเก็บขยะ ฉันมีฟังก์ชันการเปรียบเทียบง่ายๆดังต่อไปนี้ซึ่งฉันได้พัฒนาอย่างช้าๆ: static void Profile(string description, int iterations, Action func) { // warm up func(); // clean up GC.Collect(); var watch = new Stopwatch(); watch.Start(); for (int i = 0; i < iterations; i++) { func(); } watch.Stop(); Console.Write(description); Console.WriteLine(" Time Elapsed {0} ms", watch.ElapsedMilliseconds); …

8
จะเพิ่มตัวคั่นให้กับ WinForms ContextMenu ได้อย่างไร
ภายในการควบคุมของฉันฉันมี: ContextMenu = new ContextMenu(); ContextMenu.MenuItems.Add(new MenuItem("&Add Item", onAddSpeaker)); ContextMenu.MenuItems.Add(new MenuItem("&Edit Item", onEditSpeaker)); ContextMenu.MenuItems.Add(new MenuItem("&Delete Item", onDeleteSpeaker)); ContextMenu.MenuItems.Add( ??? ); ContextMenu.MenuItems.Add(new MenuItem("Cancel")); จะเพิ่มเส้นคั่นใน ContextMenu นี้ได้อย่างไร?

8
เมื่อใดควรใช้การอ้างอิงและเมื่อไม่จำเป็นใน C #
ฉันมีวัตถุที่อยู่ในสถานะหน่วยความจำของโปรแกรมและยังมีฟังก์ชันอื่น ๆ ของผู้ปฏิบัติงานที่ฉันส่งผ่านวัตถุไปเพื่อแก้ไขสถานะ ฉันได้รับการส่งผ่านโดยอ้างถึงหน้าที่ของผู้ปฏิบัติงาน อย่างไรก็ตามฉันเจอฟังก์ชันต่อไปนี้ byte[] received_s = new byte[2048]; IPEndPoint tmpIpEndPoint = new IPEndPoint(IPAddress.Any, UdpPort_msg); EndPoint remoteEP = (tmpIpEndPoint); int sz = soUdp_msg.ReceiveFrom(received_s, ref remoteEP); มันทำให้ฉันสับสนเพราะทั้งสองอย่างreceived_sและremoteEPกำลังส่งคืนสิ่งต่างๆจากฟังก์ชัน ทำไมremoteEPต้องมีrefและreceived_sไม่? ฉันเป็นโปรแกรมเมอร์ ac ด้วยดังนั้นฉันจึงมีปัญหาในการดึงตัวชี้ออกจากหัว แก้ไข: ดูเหมือนว่าวัตถุใน C # เป็นตัวชี้ไปยังวัตถุที่อยู่ใต้ฝากระโปรง ดังนั้นเมื่อคุณส่งผ่านวัตถุไปยังฟังก์ชันคุณสามารถแก้ไขเนื้อหาของวัตถุผ่านตัวชี้และสิ่งเดียวที่ส่งผ่านไปยังฟังก์ชันคือตัวชี้ไปยังวัตถุเพื่อไม่ให้วัตถุนั้นถูกคัดลอก คุณใช้ ref หรือ out ถ้าคุณต้องการให้สามารถสลับออกหรือสร้างวัตถุใหม่ในฟังก์ชันซึ่งเปรียบเสมือนตัวชี้คู่
104 c#  ref 

13
คุณทดสอบวิธีส่วนตัวกับ NUnit ได้อย่างไร?
ฉันสงสัยว่าจะใช้ NUnit อย่างไรให้ถูกต้อง ขั้นแรกฉันสร้างโครงการทดสอบแยกต่างหากที่ใช้โครงการหลักของฉันเป็นข้อมูลอ้างอิง แต่ในกรณีนั้นฉันไม่สามารถทดสอบวิธีส่วนตัวได้ ฉันเดาว่าฉันต้องใส่รหัสทดสอบลงในรหัสหลักของฉัน?! - นั่นดูเหมือนจะไม่ใช่วิธีที่ถูกต้อง (ฉันไม่ชอบแนวคิดในการจัดส่งรหัสที่มีการทดสอบ) คุณทดสอบวิธีส่วนตัวกับ NUnit ได้อย่างไร?

21
ควรใช้วิธี C # ที่ * สามารถ * คงที่ได้หรือไม่? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา วิธีการ C # ที่สามารถคงที่ควรเป็นแบบคงที่หรือไม่? วันนี้เราคุยกันเรื่องนี้และฉันก็อยู่ในรั้ว ลองนึกภาพคุณมีวิธีการยาว ๆ ที่คุณปรับโครงสร้างใหม่ไม่กี่บรรทัด วิธีการใหม่อาจใช้ตัวแปรท้องถิ่นสองสามตัวจากเมธอดหลักและส่งคืนค่า ซึ่งหมายความว่าอาจเป็นแบบคงที่ คำถามคือควรเป็นแบบคงที่หรือไม่? ไม่คงที่ตามการออกแบบหรือทางเลือกเพียงเพราะธรรมชาติของมันไม่ได้อ้างอิงค่าอินสแตนซ์ใด ๆ
104 c#  static  methods 

22
บังคับให้เบราว์เซอร์รับไฟล์ js และ css ล่าสุดในแอปพลิเคชัน asp.net
เบราว์เซอร์บางตัวแคชไฟล์ js และ css ไม่สามารถรีเฟรชได้เว้นแต่คุณจะบังคับให้ทำ วิธีใดง่ายที่สุด ฉันเพิ่งใช้โซลูชันนี้ซึ่งดูเหมือนว่าจะได้ผล ประกาศตัวแปรเวอร์ชันบนเพจของคุณ public string version { get; set; } รับหมายเลขเวอร์ชันจากคีย์ web.config version = ConfigurationManager.AppSettings["versionNumber"]; ในหน้า aspx ของคุณให้เรียกใช้จาวาสคริปต์และสไตล์ชีทเช่นนั้น <script src="scripts/myjavascript.js?v=<%=version %>" type="text/javascript"></script> <link href="styles/mystyle.css?v=<%=version %>" rel="stylesheet" type="text/css" /> ดังนั้นหากคุณตั้งค่าเวอร์ชัน = 1.1 จาก 1.0 ใน web.config เบราว์เซอร์ของคุณจะดาวน์โหลดไฟล์ล่าสุดซึ่งหวังว่าจะช่วยให้คุณและผู้ใช้ของคุณไม่ต้องหงุดหงิด มีวิธีแก้ไขอื่นที่ทำงานได้ดีกว่าหรือไม่หรือจะทำให้เกิดปัญหาที่ไม่คาดคิดสำหรับเว็บไซต์หรือไม่

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