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

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

23
ทำไม ReSharper ต้องการใช้ 'var' สำหรับทุกสิ่ง
ฉันเพิ่งเริ่มใช้ ReSharper กับ Visual Studio (หลังจากคำแนะนำมากมายใน SO) หากต้องการลองฉันเปิดโครงการ ASP.NET MVC เมื่อเร็ว ๆ นี้ หนึ่งในสิ่งแรกและบ่อยที่สุดที่ฉันสังเกตเห็นมันคือการแนะนำให้เปลี่ยน / ประกาศทั้งหมดของฉันชัดเจนที่สุดไปvarแทน ตัวอย่างเช่น: //From This: MyObject foo = DB.MyObjects.SingleOrDefault(w => w.Id == 1); //To This: var foo = DB.MyObjects.SingleOrDefault(w => w.Id == 1); และอื่น ๆ แม้จะมีประเภทง่ายๆเช่นint, boolฯลฯ เหตุใดจึงมีการแนะนำนี้ ฉันไม่ได้มาจากวิทยาการคอมพิวเตอร์หรือพื้นหลัง. NET มี "ตกอยู่ใน" การพัฒนา. NET เมื่อเร็ว ๆ …

16
สตริงแทนที่กรณีที่ไม่สนใจ
ฉันมีสตริงชื่อ "สวัสดีโลก" ฉันต้องการแทนที่คำว่า "โลก" เป็น "csharp" สำหรับสิ่งนี้ฉันใช้: string.Replace("World", "csharp"); แต่เป็นผลให้ฉันไม่ได้รับสายแทนที่ เหตุผลคือกรณีที่ไวต่อความรู้สึก สตริงเดิมมี "โลก" ในขณะที่ฉันพยายามแทนที่ "โลก" มีวิธีใดบ้างที่จะหลีกเลี่ยงการแพ้ในกรณีนี้ใน string.Replace?
214 c#  string 


13
โครงสร้างข้อมูล NET: ArrayList, List, HashTable, Dictionary, SortedList, SortedDictionary - ความเร็ว, หน่วยความจำและเมื่อใช้แต่ละอัน?
.NET มีโครงสร้างข้อมูลที่ซับซ้อนจำนวนมาก น่าเสียดายที่บางคนก็คล้ายกันและฉันก็ไม่แน่ใจเสมอว่าจะใช้เมื่อไรและเมื่อใช้อีกอัน หนังสือ C # และ Visual Basic ส่วนใหญ่พูดถึงพวกเขาในระดับหนึ่ง แต่พวกเขาไม่เคยไปลงลึกถึงรายละเอียดที่แท้จริง ความแตกต่างระหว่าง Array, ArrayList, List, Hashtable, Dictionary, SortedList และ SortedDictionary คืออะไร อันไหนที่นับได้ (IList - สามารถทำลูป 'foreach' ได้)? อันไหนที่ใช้คู่คีย์ / ค่า (IDict) แล้วรอยเท้าหน่วยความจำล่ะ? ความเร็วในการแทรก? ความเร็วในการดึงข้อมูล? มีโครงสร้างข้อมูลอื่น ๆ ที่น่ากล่าวถึงไหม? ฉันยังคงค้นหารายละเอียดเพิ่มเติมเกี่ยวกับการใช้หน่วยความจำและความเร็ว (สัญลักษณ์ Big-O)

7
ฉันจะเปลี่ยนชื่อตารางเมื่อใช้ ASP.NET Identity ได้อย่างไร
ฉันกำลังใช้รุ่นที่วางจำหน่าย (RTM ไม่ใช่ RC) ของ Visual Studio 2013 (ดาวน์โหลดจาก MSDN 2013-10-18) ดังนั้น AspNet.Identity รุ่นล่าสุด (RTM) เมื่อฉันสร้างโครงการเว็บใหม่ฉันเลือก "บัญชีผู้ใช้ส่วนบุคคล" สำหรับการตรวจสอบ สิ่งนี้สร้างตารางต่อไปนี้: AspNetRoles AspNetUserClaims AspNetUserLogins AspNetUserRoles AspNetUsers เมื่อฉันลงทะเบียนผู้ใช้ใหม่ (โดยใช้เทมเพลตเริ่มต้น) ตารางเหล่านี้ (รายการด้านบน) จะถูกสร้างขึ้นและตาราง AspNetUsers จะมีการบันทึกแทรกซึ่งประกอบด้วย: Id ชื่อผู้ใช้ PasswordHash SecurityStamp discriminator นอกจากนี้โดยการเพิ่มคุณสมบัติสาธารณะในคลาส "ApplicationUser" ฉันได้เพิ่มฟิลด์เพิ่มเติมลงในตาราง AspNetUsers เช่น "FirstName", "LastName", "PhoneNumber" เป็นต้น นี่คือคำถามของฉัน มีวิธีการเปลี่ยนชื่อของตารางข้างต้น (เมื่อพวกเขาถูกสร้างขึ้นครั้งแรก) หรือพวกเขาจะถูกตั้งชื่อด้วยAspNetคำนำหน้าตามที่ฉันระบุไว้ข้างต้นหรือไม่ หากชื่อตารางแตกต่างกันโปรดอธิบายวิธีการ …

9
วิธีการขยายต้องถูกกำหนดในคลาสที่ไม่ใช่แบบทั่วไป
ฉันได้รับข้อผิดพลาด: วิธีการขยายต้องถูกกำหนดในคลาสที่ไม่ใช่แบบทั่วไป ในบรรทัด: public class LinqHelper นี่คือคลาสตัวช่วยตามรหัส Mark Gavells ฉันสับสนจริง ๆ ว่าข้อผิดพลาดนี้หมายถึงอะไรเพราะฉันแน่ใจว่ามันทำงานได้ดีเมื่อฉันทิ้งไว้ในวันศุกร์! using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Linq.Expressions; using System.Reflection; /// <summary> /// Helper methods for link /// </summary> public class LinqHelper { public static IOrderedQueryable<T> OrderBy<T>(this IQueryable<T> source, string property) { return ApplyOrder<T>(source, property, "OrderBy"); …

9
HTTP POST ส่งคืนข้อผิดพลาด: 417“ ความคาดหวังล้มเหลว”
เมื่อฉันพยายาม POST ไปยัง URL ผลลัพธ์จะมีข้อยกเว้นดังต่อไปนี้: รีโมตเซิร์ฟเวอร์ส่งคืนข้อผิดพลาด: (417) การคาดหวังล้มเหลว นี่คือตัวอย่างรหัส: var client = new WebClient(); var postData = new NameValueCollection(); postData.Add("postParamName", "postParamValue"); byte[] responseBytes = client.UploadValues("http://...", postData); string response = Encoding.UTF8.GetString(responseBytes); // (417) Expectation Failed. การใช้HttpWebRequest/HttpWebResponseคู่หรือสิ่งHttpClientใดสร้างความแตกต่าง อะไรทำให้เกิดข้อยกเว้นนี้
212 c#  .net  http  http-post  webclient 


5
พารามิเตอร์สตริงข้อความค้นหาเพิ่มเติมใน ASP.NET Web API
ฉันต้องใช้วิธีการ WebAPI ต่อไปนี้: /api/books?author=XXX&title=XXX&isbn=XXX&somethingelse=XXX&date=XXX พารามิเตอร์สตริงแบบสอบถามทั้งหมดสามารถเป็นค่าว่างได้ นั่นคือผู้เรียกสามารถระบุจาก 0 ถึงพารามิเตอร์ทั้งหมด 5 ตัว ในMVC4 เบต้าฉันเคยทำสิ่งต่อไปนี้: public class BooksController : ApiController { // GET /api/books?author=tolk&title=lord&isbn=91&somethingelse=ABC&date=1970-01-01 public string GetFindBooks(string author, string title, string isbn, string somethingelse, DateTime? date) { // ... } } MVC4 RC ไม่ทำงานเช่นนี้อีกต่อไป หากฉันระบุพารามิเตอร์น้อยกว่า 5 พารามิเตอร์จะตอบกลับด้วย404คำพูด: ไม่พบการกระทำใน 'หนังสือ' ของคอนโทรลเลอร์ที่ตรงกับคำขอ ลายเซ็นวิธีการที่ถูกต้องคืออะไรที่จะทำให้มันทำงานเหมือนที่เคยทำโดยไม่ต้องระบุพารามิเตอร์ทางเลือกในการกำหนดเส้นทาง URL?

25
ตรวจสอบชื่อคอลัมน์ในวัตถุ SqlDataReader
ฉันจะตรวจสอบเพื่อดูว่ามีคอลัมน์ในSqlDataReaderวัตถุได้อย่างไร ในชั้นการเข้าถึงข้อมูลของฉันฉันได้สร้างวิธีการที่สร้างวัตถุเดียวกันสำหรับการเรียกกระบวนงานที่เก็บไว้หลายรายการ หนึ่งในกระบวนงานที่เก็บไว้มีคอลัมน์เพิ่มเติมที่ไม่ได้ใช้โดยขั้นตอนการจัดเก็บอื่น ๆ ฉันต้องการแก้ไขวิธีการเพื่อรองรับทุกสถานการณ์ ใบสมัครของฉันเขียนด้วยภาษา C #
212 c#  .net  sqldatareader 

16
การสืบทอดหลายรายการใน C #
เนื่องจากการสืบทอดหลายครั้งไม่ดี (ทำให้แหล่งซับซ้อนมากขึ้น) C # ไม่ได้จัดรูปแบบดังกล่าวโดยตรง แต่บางครั้งมันจะมีประโยชน์ที่จะมีความสามารถนี้ ตัวอย่างเช่นฉันสามารถใช้รูปแบบการสืบทอดหลายแบบที่ขาดหายไปโดยใช้อินเตอร์เฟสและคลาสสามคลาสดังนี้: public interface IFirst { void FirstMethod(); } public interface ISecond { void SecondMethod(); } public class First:IFirst { public void FirstMethod() { Console.WriteLine("First"); } } public class Second:ISecond { public void SecondMethod() { Console.WriteLine("Second"); } } public class FirstAndSecond: IFirst, ISecond { First …

4
C # - เลือกที่จะยับยั้งคำเตือนเลิกใช้ที่กำหนดเอง
ฉันใช้Obsoleteคุณลักษณะ (ตามที่แนะนำโดยเพื่อนผู้เขียนโปรแกรม) เพื่อแสดงคำเตือนหากใช้วิธีการบางอย่าง มีวิธีใดบ้างที่จะยับยั้งการเตือนที่คล้ายกับ CodeAnalysis ' SuppressMessageณ จุดที่การใช้นั้นถูกต้อง? สิ่งนี้ต้องใช้งาน[Obsolete("Some message")]ซึ่งสร้างคำเตือน 618 และ[Obsolete]แอตทริบิวต์ธรรมดาโดยไม่มีข้อความที่สร้างคำเตือน 612

27
ไม่สามารถโหลดไฟล์หรือชุดประกอบ ... พารามิเตอร์ไม่ถูกต้อง
เมื่อเร็ว ๆ นี้ฉันพบข้อยกเว้นต่อไปนี้ที่โซลูชัน C #: ข้อผิดพลาด 2 ไม่สามารถโหลดไฟล์หรือชุดประกอบ 'Newtonsoft.Json, รุ่น = 3.5.0.0, วัฒนธรรม = เป็นกลาง, PublicKeyToken = b9a188c8922137c6' หรือการอ้างอิงอย่างใดอย่างหนึ่ง พารามิเตอร์ไม่ถูกต้อง (ข้อยกเว้นจาก HRESULT: 0x80070057 (E_INVALIDARG)) สิ่งนี้ไม่ได้ขึ้นอยู่กับรหัสของฉันหรือชื่อชุดประกอบ (เช่นNewtonsoft.Jsonในกรณีนี้) เมื่อฉันลบ dll นี้จากการแก้ปัญหาคอมไพเลอร์บอกเกี่ยวกับอีกในข้อยกเว้นเดียวกัน ดังนั้นฉันคิดว่าบางสิ่งบางอย่างจะถูกปิด / เปิดที่พีซีของฉัน :)


3
ประเภทนี้จะต้องเป็นประเภทอ้างอิงเพื่อใช้เป็นพารามิเตอร์ 'T' ในประเภทหรือวิธีการทั่วไป
ตอนนี้ฉันมีสถานการณ์ที่ฉันต้องการความช่วยเหลือ ฉันพบข้อผิดพลาดในการคอมไพล์ในคลาส 'Derived' ด้านล่างตามที่แสดงในหัวเรื่อง ฉันเห็นโพสต์อื่น ๆ ที่คล้ายกับโพสต์นี้ แต่ฉันไม่เห็นความสัมพันธ์ มีคนบอกฉันว่าจะแก้ไขได้อย่างไร using System; using System.Collections.Generic; namespace Example { public class ViewContext { ViewContext() { } } public interface IModel { } public interface IView<T> where T : IModel { ViewContext ViewContext { get; set; } } public class SomeModel : IModel { …
211 c#  generics 

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