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

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

3
ใครช่วยอธิบาย CreatedAtRoute () ให้ฉันฟังได้ไหม
จากเทมเพลตสำหรับ Web API 2 วิธีการโพสต์จะเป็นเช่นนี้เสมอ: [ResponseType(typeof(MyDTO))] public IHttpActionResult PostmyObject(MyDTO myObject) { ... return CreatedAtRoute("DefaultApi", new { id = myObject.Id }, myObject); } ฉันไม่เข้าใจCreatedAtRoute()วิธีนี้ ใครสามารถอธิบายCreatedAtRoute()วิธีการให้ฉัน?

5
ด้านหน้าขนานกับแลมด้าแบบอะซิงโครนัส
ฉันต้องการจัดการคอลเลคชันควบคู่กันไป แต่ฉันประสบปัญหาในการใช้งานจึงหวังว่าจะได้รับความช่วยเหลือ ปัญหาเกิดขึ้นถ้าฉันต้องการเรียกวิธีการที่ทำเครื่องหมาย async ใน C # ภายในแลมบ์ดาของลูปขนาน ตัวอย่างเช่น: var bag = new ConcurrentBag<object>(); Parallel.ForEach(myCollection, async item => { // some pre stuff var response = await GetData(item); bag.Add(response); // some post stuff } var count = bag.Count; ปัญหาเกิดขึ้นกับการนับเป็น 0 เนื่องจากเธรดทั้งหมดที่สร้างขึ้นมีประสิทธิภาพเป็นเพียงเธรดพื้นหลังและการParallel.ForEachโทรไม่รอให้เสร็จสิ้น หากฉันลบคีย์เวิร์ด async วิธีการจะมีลักษณะดังนี้: var bag = new ConcurrentBag<object>(); Parallel.ForEach(myCollection, …

2
ความแตกต่างระหว่าง RegisterStartupScript และ RegisterClientScriptBlock
ความแตกต่างเพียงอย่างเดียวระหว่างRegisterStartupScriptและRegisterClientScriptBlockคือ RegisterStartupScript วางจาวาสคริปต์ไว้ก่อน</form>แท็กปิดของเพจและ RegisterClientScriptBlock วางไว้หลัง<form>แท็กเริ่มต้นของเพจหรือไม่ คุณจะเลือกอย่างใดอย่างหนึ่งเมื่อใด ฉันเขียนหน้าตัวอย่างสั้น ๆ ที่ฉันมีปัญหาและฉันไม่แน่ใจสาเหตุที่แท้จริงว่าทำไมมันถึงเกิดขึ้น นี่คือมาร์กอัป aspx: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label ID="lblDisplayDate" runat="server" Text="Label" /><br /> <asp:Button ID="btnPostback" runat="server" Text="Register Startup Script" onclick="btnPostback_Click" /><br /> <asp:Button ID="btnPostBack2" runat="server" Text="Register" onclick="btnPostBack2_Click" /> </div> </form> </body> </html> นี่คือรหัสเบื้องหลัง: protected void …
140 c#  javascript  asp.net  .net 

8
มีผลกระทบต่อประสิทธิภาพเมื่อโทร ToList () หรือไม่?
เมื่อใช้ToList()จะมีผลกระทบต่อประสิทธิภาพที่ต้องพิจารณาหรือไม่ ฉันกำลังเขียนแบบสอบถามเพื่อดึงไฟล์จากไดเรกทอรีซึ่งเป็นแบบสอบถาม: string[] imageArray = Directory.GetFiles(directory); อย่างไรก็ตามเนื่องจากฉันชอบทำงานด้วยList<>แทนฉันจึงตัดสินใจที่จะใส่ ... List<string> imageList = Directory.GetFiles(directory).ToList(); ดังนั้นจะมีผลกระทบต่อประสิทธิภาพการทำงานบางอย่างที่ควรพิจารณาเมื่อตัดสินใจทำการแปลงเช่นนี้หรือควรพิจารณาเมื่อจัดการกับไฟล์จำนวนมากเท่านั้น นี่เป็นการแปลงที่เล็กน้อยหรือไม่?
139 c#  arrays  performance  list 

10
ความกว้างคอลัมน์อัตโนมัติใน EPPlus
จะทำให้คอลัมน์มีความกว้างอัตโนมัติได้อย่างไรเมื่อข้อความในคอลัมน์ยาว? ฉันใช้รหัสนี้ Worksheet.Column(colIndex).AutoFitColumn() 'on all columns' Worksheet.cells.AutoFitColumns() Worksheet.Column(colIndex).BestFit = True 'on all columns' วิธีการเหล่านี้ไม่ทำงาน มีวิธีใดบ้างที่จะทำให้มันใช้ได้? หมายเหตุ: บางตำราของฉันใช้ Unicode
139 c#  .net  vb.net  epplus 


3
การกำหนดเส้นทางด้วยพารามิเตอร์หลายรายการโดยใช้ ASP.NET MVC
บริษัท ของเรากำลังพัฒนา API สำหรับผลิตภัณฑ์ของเราและเรากำลังคิดที่จะใช้ ASP.NET MVC ในขณะที่ออกแบบ API ของเราเราตัดสินใจที่จะใช้การโทรเหมือนที่ด้านล่างสำหรับผู้ใช้เพื่อขอข้อมูลจาก API ในรูปแบบ XML: http://ws.audioscrobbler.com/2.0/?method=artist.getimages&artist=cher&api_key=b25b959554ed76058ac220b7b2e0a026 อย่างที่คุณเห็นมีการส่งพารามิเตอร์หลายตัว (เช่นartistและapi_key) ใน ASP.NET MVC, artistจะเป็นcontroller, getImagesการดำเนินการ แต่วิธีการที่ฉันจะผ่านหลายพารามิเตอร์ให้ดำเนินการได้หรือไม่ สิ่งนี้เป็นไปได้หรือไม่หากใช้รูปแบบด้านบน
139 c#  .net  asp.net-mvc  routing 

2
คุณจะใช้ setter ส่วนตัวอย่างไรเมื่อใช้อินเตอร์เฟส?
ฉันได้สร้างส่วนต่อประสานที่มีคุณสมบัติบางอย่าง หากอินเตอร์เฟสนั้นไม่มีอยู่คุณสมบัติทั้งหมดของอ็อบเจ็กต์คลาสจะถูกตั้งค่าเป็น { get; private set; } อย่างไรก็ตามสิ่งนี้ไม่ได้รับอนุญาตเมื่อใช้อินเทอร์เฟซดังนั้นจะสามารถทำได้และหากเป็นเช่นนั้นได้อย่างไร

2
การดำเนินการ async Framework Entity ใช้เวลาสิบเท่าในการดำเนินการให้เสร็จสมบูรณ์
ฉันมีไซต์ MVC ที่ใช้ Entity Framework 6 เพื่อจัดการฐานข้อมูลและฉันได้ทำการทดลองกับการเปลี่ยนแปลงเพื่อให้ทุกอย่างทำงานเป็นตัวควบคุม async และการเรียกไปยังฐานข้อมูลนั้นจะทำงานเหมือน async counterparts (เช่น ToListAsync () แทน ToList ()) ปัญหาที่ฉันมีคือเพียงแค่เปลี่ยนการสืบค้นของฉันเป็น async ทำให้พวกเขาช้าอย่างไม่น่าเชื่อ รหัสต่อไปนี้จะได้รับการรวบรวมวัตถุ "Album" จากบริบทข้อมูลของฉันและถูกแปลเป็นฐานข้อมูลที่ค่อนข้างง่าย: // Get the albums var albums = await this.context.Albums .Where(x => x.Artist.ID == artist.ID) .ToListAsync(); นี่คือ SQL ที่สร้างขึ้น: exec sp_executesql N'SELECT [Extent1].[ID] AS [ID], [Extent1].[URL] AS [URL], …

8
วิธีจัดทำเอกสารข้อยกเว้นใน c # /. net
ฉันกำลังเขียนกรอบเล็ก ๆ ที่จะใช้ภายในโดยนักพัฒนาอื่น ๆ ภายใน บริษัท ฉันต้องการให้ข้อมูล Intellisense ที่ดี แต่ฉันไม่แน่ใจว่าจะบันทึกข้อยกเว้นได้อย่างไร ในตัวอย่างต่อไปนี้: public void MyMethod1() { MyMethod2(); // also may throw InvalidOperationException } public void MyMethod2() { System.IO.File.Open(somepath...); // this may throw FileNotFoundException // also may throw DivideByZeroException } ฉันรู้ว่ามาร์กอัปสำหรับการยกเว้นเอกสารคือ: /// <exception cref="SomeException">when things go wrong.</exception> สิ่งที่ฉันไม่เข้าใจคือวิธีการจัดทำเอกสารข้อยกเว้นโยนโดยรหัสที่เรียกว่า MyMethod1() ? ฉันควรบันทึกข้อยกเว้นที่ถูกส่งไปด้วยหรือไม่ MyMethod2() …

7
เหตุใดจึงไม่สามารถกำหนดวิธีที่ไม่ระบุชื่อให้ var ได้
ฉันมีรหัสต่อไปนี้: Func<string, bool> comparer = delegate(string value) { return value != "0"; }; อย่างไรก็ตามสิ่งต่อไปนี้ไม่ได้รวบรวม: var comparer = delegate(string value) { return value != "0"; }; ทำไมคอมไพเลอร์ไม่สามารถคิดได้ว่ามันคือFunc<string, bool>อะไร? ใช้พารามิเตอร์สตริงเดียวและส่งคืนบูลีน แต่มันทำให้ฉันมีข้อผิดพลาด: ไม่สามารถกำหนดเมธอดแบบไม่ระบุชื่อให้กับตัวแปรโลคัลที่พิมพ์โดยนัย ฉันมีหนึ่งเดาและนั่นคือถ้ารุ่น var รวบรวมมันจะขาดความมั่นคงถ้าฉันมีต่อไปนี้: var comparer = delegate(string arg1, string arg2, string arg3, string arg4, string arg5) { return false; }; …


7
วิธีการแยก () สตริงที่คั่นด้วยรายการ <String>
ฉันมีรหัสนี้: String[] lineElements; . . . try { using (StreamReader sr = new StreamReader("TestFile.txt")) { String line; while ((line = sr.ReadLine()) != null) { lineElements = line.Split(','); . . . แต่คิดว่าฉันน่าจะไปกับ List แทน แต่รหัสนี้: List&lt;String&gt; listStrLineElements; . . . try { using (StreamReader sr = new StreamReader("TestFile.txt")) { String line; …
139 c#  .net  list  arraylist 

9
HttpWebRequest โดยใช้การรับรองความถูกต้องเบื้องต้น
ฉันพยายามที่จะผ่านการร้องขอการรับรองความถูกต้องที่เลียนแบบ "การรับรองความถูกต้องขั้นพื้นฐาน" เราเคยเห็นเมื่อตั้งค่า IIS สำหรับพฤติกรรมนี้ URL คือ: https://telematicoprova.agenziadogane.it/TelematicoServiziDiUtilitaWeb/ServiziDiUtilitaAutServlet?UC=22&amp;SC=1&amp;ST=2 (คำเตือน: https!) เซิร์ฟเวอร์นี้ทำงานภายใต้ UNIX และ Java เป็นแอปพลิเคชันเซิร์ฟเวอร์ นี่คือรหัสที่ฉันใช้เชื่อมต่อกับเซิร์ฟเวอร์นี้: CookieContainer myContainer = new CookieContainer(); HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://telematicoprova.agenziadogane.it/TelematicoServiziDiUtilitaWeb/ServiziDiUtilitaAutServlet?UC=22&amp;SC=1&amp;ST=2"); request.Credentials = new NetworkCredential(xxx,xxx); request.CookieContainer = myContainer; request.PreAuthenticate = true; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); (ฉันคัดลอกสิ่งนี้จากโพสต์อื่นในเว็บไซต์นี้) แต่ฉันได้รับคำตอบจากเซิร์ฟเวอร์: การเชื่อมต่อพื้นฐานถูกปิด: มีข้อผิดพลาดที่ไม่คาดคิดเกิดขึ้นในการส่ง ฉันคิดว่าฉันพยายามทุกอย่างที่เป็นไปได้ที่ความรู้ของฉันใน C # จะต้องเสนอให้ฉัน แต่ไม่มีอะไร ...

28
เหตุใดจึงไม่มีการประกาศตัวแปรใน“ ลอง” ในขอบเขตใน“ จับ” หรือ“ ในที่สุด”?
ใน C # และใน Java (และภาษาอื่น ๆ ด้วย) ตัวแปรที่ประกาศในบล็อก "ลอง" ไม่ได้อยู่ในขอบเขตในบล็อก "catch" หรือ "สุดท้าย" ที่สอดคล้องกัน ตัวอย่างเช่นรหัสต่อไปนี้ไม่ได้รวบรวม: try { String s = "test"; // (more code...) } catch { Console.Out.WriteLine(s); //Java fans: think "System.out.println" here instead } ในรหัสนี้ข้อผิดพลาดเวลาคอมไพล์เกิดขึ้นในการอ้างอิงถึง s ใน catch block เนื่องจาก s อยู่ในขอบเขตในลองบล็อกเท่านั้น (ใน Java ข้อผิดพลาดในการคอมไพล์คือ "s ไม่สามารถแก้ไขได้" ใน …

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