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

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

5
เหตุใดฉันจึงควรเลือก 'await Task whenAll' มากกว่าการรอหลายครั้ง
ในกรณีที่ฉันไม่สนใจลำดับการทำงานให้เสร็จและเพียงแค่ต้องการให้ทุกอย่างเสร็จสมบูรณ์ฉันควรใช้await Task.WhenAllแทนหลาย ๆ ตัวawaitหรือไม่ เช่นDoWork2ด้านล่างเป็นวิธีที่ต้องการDoWork1(และทำไม?): using System; using System.Threading.Tasks; namespace ConsoleApp { class Program { static async Task<string> DoTaskAsync(string name, int timeout) { var start = DateTime.Now; Console.WriteLine("Enter {0}, {1}", name, timeout); await Task.Delay(timeout); Console.WriteLine("Exit {0}, {1}", name, (DateTime.Now - start).TotalMilliseconds); return name; } static async Task DoWork1() { var …

19
วิธีตรวจสอบสตริงที่เข้ารหัส Base64 ที่ถูกต้อง
มีวิธีใน C # เพื่อดูว่าสตริงที่เข้ารหัส Base 64 นอกเหนือจากการพยายามแปลงและดูว่ามีข้อผิดพลาดหรือไม่? ฉันมีรหัสโค้ดดังนี้: // Convert base64-encoded hash value into a byte array. byte[] HashBytes = Convert.FromBase64String(Value); ฉันต้องการหลีกเลี่ยงข้อยกเว้น "อักขระไม่ถูกต้องในสตริงฐาน 64" ที่เกิดขึ้นหากค่าไม่ใช่สตริง 64 ฐานที่ถูกต้อง ฉันต้องการตรวจสอบและส่งคืนเท็จแทนการจัดการข้อยกเว้นเพราะฉันคาดว่าบางครั้งค่านี้จะไม่เป็นสตริง 64 ฐาน มีวิธีตรวจสอบก่อนใช้ฟังก์ชัน Convert.FromBase64String หรือไม่? ขอบคุณ! อัปเดต: ขอบคุณสำหรับคำตอบทั้งหมดของคุณ นี่คือวิธีการขยายที่คุณสามารถใช้ได้จนถึงตอนนี้ดูเหมือนว่าสตริงของคุณจะผ่าน Convert.FromBase64String โดยไม่มีข้อยกเว้น .NET ดูเหมือนจะละเว้นช่องว่างต่อท้ายและสิ้นสุดทั้งหมดเมื่อแปลงเป็น 64 ฐานดังนั้น "1234" จึงถูกต้องและเป็น "1234" public static bool IsBase64String(this …
127 c#  validation  base64 

2
Assembly Binding redirect: อย่างไรและทำไม?
นี่ไม่ใช่คำถามที่เป็นปัญหา แต่เป็นคำถามเพื่อความเข้าใจทั่วไปเกี่ยวกับการทำงานของการเปลี่ยนเส้นทางการผูกแอสเซมบลี แบบสอบถาม เหตุใดการเปลี่ยนเส้นทางที่มีผลผูกพันจึงแสดงเฉพาะเวอร์ชันหลักและไม่ใช่หมายเลขรองสร้างและแก้ไข เวอร์ชันเก่าและใหม่จะเปลี่ยนแปลงเฉพาะเมื่อมีการเปลี่ยนแปลงในเวอร์ชันหลักหรือไม่? <dependentAssembly> <assemblyIdentity name="FooBar" publicKeyToken="32ab4ba45e0a69a1" culture="en-us" /> <bindingRedirect oldVersion="7.0.0.0" newVersion="8.0.0.0" /> </dependentAssembly>


24
CSS, รูปภาพ, JS ไม่โหลดใน IIS
แอปพลิเคชันทั้งหมดของฉันทำงานได้ดี แต่ทันใดนั้นไซต์ทั้งหมดภายใต้ IIS ไม่โหลด css, รูปภาพ, สคริปต์ มันเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบ ถ้าฉันเข้าสู่ระบบมันใช้งานได้ดี เช่น mysite.com/Account/LogOn?ReturnUrl=%2fpublic%2fimages%2ficons%2f41.png ในเครื่องของฉันทำงานได้ดีโดยไม่ต้องเข้าสู่ระบบ
126 c#  asp.net-mvc  iis 

16
เกิดอะไรขึ้นเมื่อ Visual Studio บอกฉันว่า“ xcopy ออกด้วยรหัส 4”
ฉันไม่ค่อยคุ้นเคยกับเหตุการณ์หลังการสร้างดังนั้นฉันจึงสับสนเล็กน้อยว่าเกิดอะไรขึ้นกับโปรแกรมของฉัน เมื่อรวบรวมใน Visual Studio 2010 ฉันจะได้รับสิ่งต่อไปนี้: The command "xcopy C:\Users\Me\Path\Foo.bar\Library\dsoframer.ocx C:\Users\Me\Path\Foo.bar\bin\Debug\ /Y /E /D xcopy C:\Users\Me\Path\Foo.bar\ApplicationFiles C:\Users\Me\Path\Foo.bar\bin\Debug\ /Y /E /D xcopy C:\Users\Me\Path\url\ C:\Users\Me\Path\Foo.bar\bin\Debug\ /Y /E /D rmdir /S /Q C:\Users\Me\Path\Foo.bar\bin\Debug\.gwt-tmp" exited with code 4. ดูเหมือนโปรแกรมจะทำงานได้ดีแม้จะมีข้อผิดพลาดนี้ แต่ฉันไม่ต้องการเพิกเฉยต่อปัญหานี้และหวังว่าจะไม่มีอะไรเลวร้ายเกิดขึ้น น่าแปลกที่บรรทัดนี้เริ่มต้นจากคำสั่งเดียว (xcopy แรก) แต่เมื่อฉันรวบรวมโปรเจ็กต์ต่อไป (แก้ไขปัญหาอื่น ๆ ส่วนใหญ่อ้างอิง) ข้อความแสดงข้อผิดพลาดก็ขยายใหญ่ขึ้นเรื่อย ๆ มีความคิดว่าจะเกิดอะไรขึ้นบ้าง? แก้ไข: นี่คือเหตุการณ์หลังการสร้างที่ดูเหมือนจะล้มเหลว - xcopy …

6
ใน C # ฉันจะสร้างวัตถุ TextReader จากสตริงได้อย่างไร (โดยไม่ต้องเขียนลงดิสก์)
ฉันใช้A Fast CSV Readerเพื่อแยกวิเคราะห์ข้อความที่วางลงในเว็บเพจ โปรแกรมอ่าน Fast CSV ต้องการวัตถุ TextReader และสิ่งที่ฉันมีก็คือสตริง วิธีที่ดีที่สุดในการแปลงสตริงเป็นวัตถุ TextReader ได้ทันทีคืออะไร? ขอบคุณ! อัปเดต - โค้ดตัวอย่าง - ในตัวอย่างต้นฉบับ StreamReader ใหม่กำลังมองหาไฟล์ชื่อ "data.csv" ฉันหวังว่าจะจัดหาผ่าน TextBox_StartData.Text การใช้โค้ดด้านล่างนี้ไม่ได้รวบรวม TextReader sr = new StringReader(TextBox_StartData.Text); using (CsvReader csv = new CsvReader(new StreamReader(sr), true)) { DetailsView1.DataSource = csv; DetailsView1.DataBind(); } new StreamReader(sr)บอกฉันก็มีข้อโต้แย้งที่ไม่ถูกต้อง ความคิดใด ๆ ? เป็นวิธีอื่นฉันได้ลองสิ่งนี้: …
126 c#  csv  csvhelper  textreader 

4
วิธีใช้ WSDL
ฉันต้องการใช้บริการเว็บ พวกเขาส่งไฟล์ WSDL มาให้ฉัน ฉันควรทำอย่างไรเพื่อเพิ่มลงในเว็บไซต์ของฉันและเริ่มใช้เป็นพร็อกซี (ถ้าฉันวางไว้ใน Virtual Directory จะสามารถค้นพบได้ แต่จะให้การเชื่อมต่อกับบริการเว็บจริงหรือไม่)
126 c#  web-services  wsdl 

7
จะใช้ C # 6 กับ Web Site ประเภทโครงการอย่างไร?
อัปเดตประเภทโครงการเว็บไซต์ที่มีอยู่Visual Studio 2015 ฉันเปลี่ยนกรอบงานเป็น 4.6 จากนั้นฉันคาดว่าจะมีคุณสมบัติใหม่ทั้งหมดในโค้ดของฉันหลังไฟล์ ขออภัยฉันได้รับข้อผิดพลาดเช่น: ข้อผิดพลาด CS8026: คุณสมบัติ 'คุณสมบัติการแสดงออก' ไม่มีใน C # 5 โปรดใช้ภาษาเวอร์ชัน 6 ขึ้นไป หรือเช่น: ข้อผิดพลาด CS8026: คุณลักษณะ 'สตริงที่ถูกแก้ไข' ไม่มีใน C # 5 โปรดใช้ภาษาเวอร์ชัน 6 ขึ้นไป ฉันตรวจสอบ Google อย่างรวดเร็วและพบว่ามีผู้ชายคนหนึ่งโพสต์ความคิดเห็นในบล็อกโพสต์ของ ScottGu (ค้นหา "8026" ในหน้านั้น) เนื่องจากฉันไม่เข้าใจวิธีแก้ปัญหาของเขาบวกกับฉันต้องการให้มองเห็นโซลูชันมากขึ้นฉันจึงได้สร้างโพสต์ SO นี้ขึ้น คำถามของฉัน: ฉันจะมีโครงการ Visual Studio 2015 ประเภทเว็บไซต์ (เช่นไม่ใช่Web Application ) เพื่อจดจำคุณลักษณะ …

12
รับชื่อพื้นที่ปัจจุบันในมุมมองหรือตัวควบคุม
คุณได้รับชื่อพื้นที่ปัจจุบันในมุมมองหรือคอนโทรลเลอร์ได้อย่างไร? มีอะไรที่ต้องการViewContext.RouteData.Values["controller"]สำหรับพื้นที่หรือไม่?
126 c#  asp.net-mvc  razor 

1
วิธีใส่แอตทริบิวต์ผ่าน XElement
ฉันมีรหัสนี้: XElement EcnAdminConf = new XElement("Type", new XElement("Connections", new XElement("Conn"), // Conn.SetAttributeValue("Server", comboBox1.Text); // Conn.SetAttributeValue("DataBase", comboBox2.Text))), new XElement("UDLFiles"))); // Conn. ฉันจะเพิ่มแอตทริบิวต์ได้Connอย่างไร? ฉันต้องการเพิ่มแอตทริบิวต์ที่ฉันทำเครื่องหมายเป็นความคิดเห็น แต่ถ้าฉันพยายามตั้งค่าแอตทริบิวต์ConnหลังจากกำหนดEcnAdminConfแล้วจะไม่ปรากฏให้เห็น ฉันต้องการตั้งค่าให้ XML มีลักษณะดังนี้: <Type> <Connections> <Conn ServerName="FAXSERVER\SQLEXPRESS" DataBase="SPM_483000" /> <Conn ServerName="FAXSERVER\SQLEXPRESS" DataBase="SPM_483000" /> </Connections> <UDLFiles /> </Type>
126 c#  xml  linq-to-xml 

11
LINQ เป็นเอนทิตีไม่รู้จักเมธอด 'System.String ToString ()' และวิธีนี้ไม่สามารถแปลเป็นนิพจน์ร้านค้าได้
ฉันกำลังย้ายข้อมูลบางอย่างจากเซิร์ฟเวอร์ mysql หนึ่งไปยังเซิร์ฟเวอร์ sql แต่ฉันไม่สามารถหาวิธีทำให้รหัสนี้ทำงานได้: using (var context = new Context()) { ... foreach (var item in collection) { IQueryable<entity> pages = from p in context.pages where p.Serial == item.Key.ToString() select p; foreach (var page in pages) { DataManager.AddPageToDocument(page, item.Value); } } Console.WriteLine("Done!"); Console.Read(); } เมื่อเข้าสู่วินาทีforeach (var page in pages)จะแสดงข้อยกเว้นว่า: …
126 c#  mysql  sql  linq 

5
การดีบักคุณสมบัติอัตโนมัติ
มีวิธีใดบ้างในการตั้งค่าเบรกพอยต์บน setter / getter ในคุณสมบัติที่ใช้งานอัตโนมัติ int Counter { get; set; } นอกเหนือจากการเปลี่ยนเป็นคุณสมบัติมาตรฐาน (ฉันกำลังทำในลักษณะนี้ แต่ในการทำเช่นนั้นฉันต้องเปลี่ยนและคอมไพล์โครงการใหม่ทั้งหมด)

5
คำจำกัดความของโอเปอเรเตอร์“ ==” สำหรับ Double
ด้วยเหตุผลบางอย่างฉันแอบเข้าไปในซอร์ส. NET Framework สำหรับคลาสDoubleและพบว่าการประกาศ==คือ: public static bool operator ==(Double left, Double right) { return left == right; } ตรรกะเดียวกันนี้ใช้ได้กับทุกตัวดำเนินการ คำจำกัดความดังกล่าวคืออะไร? มันทำงานอย่างไร? เหตุใดจึงไม่สร้างการเรียกซ้ำแบบไม่สิ้นสุด
126 c#  .net  language-lawyer 

11
เหตุใดจึงถูกต้องที่จะเชื่อมต่อสตริง Null แต่ไม่สามารถเรียก "null ToString ()" ได้
นี่คือรหัส C # ที่ถูกต้อง var bob = "abc" + null + null + null + "123"; // abc123 นี่ไม่ใช่รหัส C # ที่ถูกต้อง var wtf = null.ToString(); // compiler error เหตุใดคำสั่งแรกจึงใช้ได้
126 c#  .net  string  null 

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