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

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

13
การแก้ไขค่าพจนานุกรมในลูป foreach
ฉันกำลังพยายามสร้างแผนภูมิวงกลมจากพจนานุกรม ก่อนที่ฉันจะแสดงแผนภูมิวงกลมฉันต้องการเก็บข้อมูลให้เป็นระเบียบ ฉันจะลบพายชิ้นใด ๆ ที่จะน้อยกว่า 5% ของพายแล้ววางลงในชิ้นพาย "อื่น ๆ " อย่างไรก็ตามฉันได้รับCollection was modified; enumeration operation may not executeข้อยกเว้นในขณะทำงาน ฉันเข้าใจว่าทำไมคุณไม่สามารถเพิ่มหรือลบรายการออกจากพจนานุกรมในขณะที่วนซ้ำมัน อย่างไรก็ตามฉันไม่เข้าใจว่าทำไมคุณไม่สามารถเปลี่ยนค่าสำหรับคีย์ที่มีอยู่ภายในลูป foreach ได้ ข้อเสนอแนะใด ๆ : แก้ไขรหัสของฉันจะได้รับการชื่นชม Dictionary<string, int> colStates = new Dictionary<string,int>(); // ... // Some code to populate colStates dictionary // ... int OtherCount = 0; foreach(string key in …
192 c#  .net  .net-2.0 

21
ผู้ให้บริการ Microsoft.Jet.OLEDB.4.0 'ไม่ได้ลงทะเบียนในเครื่องท้องถิ่น
ฉันสร้างแอปพลิเคชัน windows ที่พัฒนาใน. NET 3.5 ในเซิร์ฟเวอร์ Windows 2008 32 บิต เมื่อปรับใช้แอปพลิเคชันในเซิร์ฟเวอร์ 64 บิตจะแสดงข้อผิดพลาด "ผู้ให้บริการ Microsoft.Jet.OLEDB.4.0 'ไม่ได้ลงทะเบียนในเครื่องท้องถิ่น" ดังนั้นเพื่อแก้ไขปัญหานี้ฉันได้เปลี่ยนคุณสมบัติ build ของโปรเจ็กต์เป็น X86 เพื่อที่จะสร้างในโหมด 32 บิตและสร้างโปรเจ็กต์ใหม่ในเครื่อง 32 บิต แต่โครงการเดียวกันใช้ไดรเวอร์ฐานข้อมูลอื่น (DB2, SQL เป็นต้น) เพื่อเชื่อมต่อกับฐานข้อมูลอื่น ดังนั้นเมื่อฉันปรับใช้แอปของฉันอีกครั้งในระบบปฏิบัติการ 64 บิตข้อผิดพลาด "พยายามโหลดแอสเซมบลี 64- บิตบนแพลตฟอร์ม 32 บิต" ฉันใช้ไดรเวอร์ Microsoft.Jet.OLEDB.4.0 เพื่ออ่านและเขียนไปยัง Excel (.xls)
191 c#  .net  oledb  32bit-64bit  jet 

16
ไฟล์การกำหนดค่า C # DLL
ฉันกำลังพยายามเพิ่มไฟล์ app.config ลงใน DLL ของฉัน แต่ความพยายามทั้งหมดล้มเหลว ตาม MusicGenesis ใน 'การใส่ข้อมูลการกำหนดค่าใน DLL ' สิ่งนี้ไม่ควรมีปัญหา เห็นได้ชัดว่าฉันกำลังทำอะไรผิด ... รหัสต่อไปนี้ควรส่งคืน ConnectionString ของฉันจาก DLL ของฉัน: return ConfigurationManager.AppSettings["ConnectionString"]; อย่างไรก็ตามเมื่อฉันคัดลอกไฟล์ app.config ไปยังแอปพลิเคชันคอนโซลของฉันมันทำงานได้ดี ความคิดใด ๆ
191 c#  app-config 

5
Castle Windsor คืออะไรและทำไมฉันถึงต้องแคร์?
ฉันเป็นนักพัฒนา Windows มาเป็นเวลานานโดยตัดฟันของฉันใน win32 และ COM ต้น ฉันทำงานกับ. NET ตั้งแต่ปี 2001 ดังนั้นฉันจึงค่อนข้างคล่องแคล่วใน C # และ CLR ฉันไม่เคยได้ยินเกี่ยวกับ Castle Windsor มาก่อนจนกว่าฉันจะเริ่มมีส่วนร่วมใน Stack Overflow ฉันอ่านคู่มือ "เริ่มต้นใช้งาน" ของ Castle Windsor แล้ว แต่ยังไม่ได้คลิก สอนเทคนิคใหม่ให้กับสุนัขตัวเก่าและบอกฉันว่าทำไมฉันจึงควรรวม Castle Windsor เข้ากับแอพสำหรับองค์กร

11
วิธีระบุชื่อผู้ใช้และรหัสผ่านเมื่อเชื่อมต่อกับเครือข่ายที่ใช้ร่วมกัน
เมื่อเชื่อมต่อกับเครือข่ายที่ผู้ใช้ปัจจุบัน (ในกรณีของฉันผู้ใช้บริการที่เปิดใช้งานเครือข่าย) ไม่มีสิทธิ์ชื่อและรหัสผ่าน ฉันรู้วิธีการทำสิ่งนี้กับฟังก์ชั่น Win32 ( WNet*ครอบครัวจากmpr.dll) แต่อยากจะทำกับฟังก์ชั่น. Net (2.0) มีตัวเลือกอะไรบ้าง? อาจมีข้อมูลเพิ่มเติมช่วย: กรณีใช้งานเป็นบริการ windows ไม่ใช่แอปพลิเคชัน Asp.Net บริการทำงานภายใต้บัญชีที่ไม่มีสิทธิ์ในการแบ่งปัน บัญชีผู้ใช้ที่จำเป็นสำหรับการแบ่งปันไม่เป็นที่รู้จักในฝั่งไคลเอ็นต์ ไคลเอ็นต์และเซิร์ฟเวอร์ไม่ใช่สมาชิกของโดเมนเดียวกัน

5
รับชื่อชุดประกอบ
คลาสยกเว้นของ C # มีคุณสมบัติซอร์สซึ่งถูกตั้งค่าเป็นชื่อของชุดประกอบโดยค่าเริ่มต้น มีวิธีอื่นในการรับสายที่แน่นอนนี้ (โดยไม่แยกสตริงอื่น)? ฉันได้ลองทำสิ่งต่อไปนี้แล้ว: catch(Exception e) { string str = e.Source; //"EPA" - what I want str = System.Reflection.Assembly.GetExecutingAssembly().FullName; //"EPA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" str = typeof(Program).FullName; //"EPA.Program" str = typeof(Program).Assembly.FullName; //"EPA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" str = typeof(Program).Assembly.ToString(); //"EPA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" str = typeof(Program).AssemblyQualifiedName; //"EPA.Program, EPA, Version=1.0.0.0, …

6
HttpClient - งานถูกยกเลิกหรือไม่
ทำงานได้ดีเมื่อมีงานหนึ่งหรือสองงาน แต่เกิดข้อผิดพลาด "งานถูกยกเลิก" เมื่อเรามีงานมากกว่าหนึ่งรายการ List<Task> allTasks = new List<Task>(); allTasks.Add(....); allTasks.Add(....); Task.WaitAll(allTasks.ToArray(), configuration.CancellationToken); private static Task<T> HttpClientSendAsync<T>(string url, object data, HttpMethod method, string contentType, CancellationToken token) { HttpRequestMessage httpRequestMessage = new HttpRequestMessage(method, url); HttpClient httpClient = new HttpClient(); httpClient.Timeout = new TimeSpan(Constants.TimeOut); if (data != null) { byte[] byteArray = …

4
IndexOutOfRangeException / ArgumentOutOfRangeException คืออะไรและฉันจะแก้ไขได้อย่างไร
ฉันมีรหัสบางส่วนและเมื่อมันประมวลผลมันจะพ่น a IndexOutOfRangeExceptionพูดว่า ดัชนีอยู่นอกขอบเขตของอาร์เรย์. สิ่งนี้หมายความว่าอะไรและฉันจะทำอย่างไรกับเรื่องนี้? ทั้งนี้ขึ้นอยู่กับชั้นเรียนที่ใช้มันยังสามารถ ArgumentOutOfRangeException มีข้อยกเว้นของชนิด 'System.ArgumentOutOfRangeException' เกิดขึ้นใน mscorlib.dll แต่ไม่ได้รับการจัดการในรหัสผู้ใช้ข้อมูลเพิ่มเติม: ดัชนีอยู่นอกช่วง ต้องไม่เป็นลบและน้อยกว่าขนาดของคอลเลกชัน

14
ฉันใช้ C # เวอร์ชันไหน
ฉันต้องการทราบว่าฉันใช้ C # รุ่นใด ถ้าฉันจะใช้หลามฉันจะทำสิ่งที่ชอบpython -Vจากบรรทัดคำสั่งหรือพิมพ์: import sys print sys.version ใน PHP ฉันจะทำสิ่งนี้: phpinfo();ใน java:java -version แต่ฉันไม่สามารถหาวิธีที่จะบรรลุผลใน C # คำถามนี้ไม่ได้ตอบแม้ว่าชื่อจะแนะนำว่าควร ฉันได้ว่ามันขึ้นอยู่กับ. NET Framework แต่มีวิธีการเขียนโปรแกรมของกรอบการทำงานของฉัน? ฉันหมายถึงโดยไม่ต้องไปที่ไดเรกทอรีและตรวจสอบชื่อของโฟลเดอร์. NET ของฉัน
191 c#  version 


7
แทนที่บางกลุ่มด้วย Regex
สมมติว่าฉันมี regex ต่อไปนี้: -(\d+)- และฉันต้องการแทนที่โดยใช้ C # กลุ่ม 1 (\d+)ด้วยAAเพื่อรับ: -AA- ตอนนี้ฉันกำลังแทนที่ด้วย: var text = "example-123-example"; var pattern = @"-(\d+)-"; var replaced = Regex.Replace(text, pattern, "-AA-"); แต่ฉันไม่ชอบสิ่งนี้เพราะถ้าฉันเปลี่ยนรูปแบบให้ตรงกัน_(\d+)_แทนฉันจะต้องเปลี่ยนสายอักขระการแทนที่ด้วย_AA_ด้วยและสิ่งนี้ขัดกับหลักการของ DRY ฉันกำลังมองหาสิ่งที่ชอบ: เก็บข้อความที่ตรงกันทุกประการว่าเป็นอย่างไร แต่เปลี่ยนกลุ่ม 1 โดยthis textและกลุ่ม 2 ตามanother text... แก้ไข: นั่นเป็นเพียงตัวอย่าง ฉันแค่กำลังมองหาวิธีทั่วไปในการทำสิ่งที่ฉันพูดไว้ข้างต้น มันควรจะทำงานเพื่อ: anything(\d+)more_text และรูปแบบใด ๆ ที่คุณสามารถจินตนาการได้ สิ่งที่ฉันต้องการทำคือแทนที่เฉพาะกลุ่มและรักษาส่วนที่เหลือของการแข่งขัน
191 c#  regex  replace 

7
ความแตกต่างระหว่าง Task.Run () และ Task.Factory.StartNew () คืออะไร
ฉันมีวิธีการ: private static void Method() { Console.WriteLine("Method() started"); for (var i = 0; i < 20; i++) { Console.WriteLine("Method() Counter = " + i); Thread.Sleep(500); } Console.WriteLine("Method() finished"); } และฉันต้องการเริ่มวิธีนี้ในงานใหม่ ฉันสามารถเริ่มงานใหม่เช่นนี้ var task = Task.Factory.StartNew(new Action(Method)); หรือสิ่งนี้ var task = Task.Run(new Action(Method)); แต่จะมีความแตกต่างใด ๆ ระหว่างและTask.Run() Task.Factory.StartNew()ทั้งคู่กำลังใช้ ThreadPool และเริ่มวิธีการ () ทันทีหลังจากสร้างอินสแตนซ์ของงาน …



5
คุณใช้ varchar (MAX) ขนาดใดในการประกาศพารามิเตอร์ของคุณ
ปกติฉันจะตั้งขนาดคอลัมน์เมื่อสร้างพารามิเตอร์ใน ADO.NET แต่ฉันจะใช้ขนาดใดถ้าคอลัมน์เป็นVARCHAR(MAX)อย่างไร cmd.Parameters.Add("@blah", SqlDbType.VarChar, ?????).Value = blah;

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