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

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

15
เข้าร่วมสองรายการด้วยกัน
หากฉันมีสองประเภทรายการของสตริง (หรือประเภทอื่น ๆ ) วิธีที่รวดเร็วในการเข้าร่วมทั้งสองรายการคืออะไร? คำสั่งควรจะเหมือนเดิม รายการซ้ำควรถูกลบ (แม้ว่าทุกรายการในลิงก์ทั้งสองจะไม่ซ้ำกัน) ฉันไม่พบสิ่งนี้มากนักเมื่อ googling และไม่ต้องการใช้อินเตอร์เฟส. NET ใด ๆ เพื่อความเร็วในการส่ง
333 c# 

18
XmlSerializer - เกิดข้อผิดพลาดในการสะท้อนประเภท
เมื่อใช้ C # .NET 2.0 ฉันมีคลาสข้อมูลคอมโพสิตที่มี[Serializable]แอตทริบิวต์อยู่ ฉันกำลังสร้างXMLSerializerชั้นเรียนและส่งผ่านไปยังผู้สร้าง: XmlSerializer serializer = new XmlSerializer(typeof(DataClass)); ฉันได้รับการยกเว้นว่า: มีข้อผิดพลาดในการสะท้อนประเภท ภายในคลาสข้อมูลมีวัตถุประกอบอื่นอยู่ สิ่งนี้จำเป็นต้องมีแอ[Serializable]ททริบิวต์หรือวางไว้ที่วัตถุด้านบนหรือไม่และนำไปใช้กับวัตถุทั้งหมดที่อยู่ข้างในซ้ำหรือไม่
332 c#  .net  xml  serialization  .net-2.0 

30
มีทางเลือกอื่นที่ดีกว่านี้ในการ "เปิดใช้ประเภท" หรือไม่
การเห็นว่า C # ไม่สามารถใช้switchกับประเภท (ซึ่งฉันรวบรวมไม่ได้เพิ่มเป็นกรณีพิเศษเนื่องจากisความสัมพันธ์หมายความว่าcaseอาจมีการใช้มากกว่าหนึ่งที่แตกต่างกัน) มีวิธีที่ดีกว่าในการจำลองการสลับกับชนิดอื่นนอกเหนือจากนี้หรือไม่ void Foo(object o) { if (o is A) { ((A)o).Hop(); } else if (o is B) { ((B)o).Skip(); } else { throw new ArgumentException("Unexpected type: " + o.GetType()); } }

30
เบรกพอยต์จะไม่ถูกโจมตีในขณะนี้ ไม่มีการโหลดสัญลักษณ์สำหรับเอกสารนี้ในแอปพลิเคชัน Silverlight
ตกลงสิ่งที่ฉันมี: Visual Studio 2010 RC, W7 x64 เริ่มต้นโครงการประเภทใหม่ของแอปพลิเคชัน Silverlight การโฮสต์แอปพลิเคชัน Silverlight ในโครงการแอปพลิเคชันเว็บ ASP.NET Silverlight เวอร์ชั่น 3.0 เพิ่มคลาส LinqToSQL บริการ WCF แอปพลิเคชันเครื่องทดสอบ Winform (โครงการในโซลูชัน) และคลาสไม่กี่รายการ (เช่นเดียวกับโครงการในโซลูชัน) เมื่อวานนี้ฉันได้รับ 'เบรกพอยต์จะไม่ถูกโจมตีในขณะนี้ ไม่มีการโหลดสัญลักษณ์สำหรับเอกสารนี้ ' ข้อความที่จะปรากฏใน IDE แต่มีผลกับ Web Appliaction เท่านั้นฉันสามารถดีบัก Silverlight และ Winform App ได้ สิ่งที่ฉันพยายามทำเพื่อกำจัดข้อความ: รีเซ็ตการตั้งค่า Visual Studio ลบไฟล์ทั้งหมดในทุกโฟลเดอร์ \ Temporary ASP.NET Files (มีหนึ่งไฟล์สำหรับแต่ละ …
331 c#  asp.net  wcf  debugging  iis 

12
การทำความเข้าใจเหตุการณ์และตัวจัดการเหตุการณ์ใน C #
ฉันเข้าใจวัตถุประสงค์ของเหตุการณ์โดยเฉพาะอย่างยิ่งในบริบทของการสร้างส่วนต่อประสานผู้ใช้ ฉันคิดว่านี่เป็นต้นแบบสำหรับการสร้างกิจกรรม: public void EventName(object sender, EventArgs e); ตัวจัดการเหตุการณ์ทำอะไรทำไมพวกเขาต้องการและฉันจะสร้างได้อย่างไร

10
ประหลาดใจกับประสิทธิภาพด้วย“ as” และประเภท nullable
ฉันเพิ่งแก้ไขบทที่ 4 ของ C # ในความลึกซึ่งเกี่ยวข้องกับประเภท nullable และฉันเพิ่มส่วนที่เกี่ยวกับการใช้ตัวดำเนินการ "เป็น" ซึ่งช่วยให้คุณเขียน: object o = ...; int? x = o as int?; if (x.HasValue) { ... // Use x.Value in here } ฉันคิดว่านี่เป็นระเบียบจริงๆและมันสามารถปรับปรุงประสิทธิภาพมากกว่า C # 1 ที่เทียบเท่าโดยใช้ "คือ" ตามด้วยนักแสดง - หลังจากทั้งหมดด้วยวิธีนี้เราเพียงแค่ต้องขอการตรวจสอบประเภทแบบไดนามิกครั้งเดียวแล้วตรวจสอบค่าง่าย ๆ . เรื่องนี้ดูเหมือนจะไม่เป็นอย่างนั้น ฉันได้รวมแอปทดสอบตัวอย่างด้านล่างซึ่งโดยทั่วไปจะรวมจำนวนเต็มทั้งหมดภายในอาร์เรย์วัตถุ - แต่อาร์เรย์นั้นมีการอ้างอิง null และการอ้างอิงสตริงจำนวนมากรวมถึงจำนวนเต็มชนิดบรรจุกล่อง มาตรฐานวัดรหัสที่คุณต้องใช้ใน C # …

6
ฉันจะคืนค่า IEnumerable ที่ว่างเปล่าได้อย่างไร
รับรหัสต่อไปนี้และคำแนะนำที่ให้ไว้ในคำถามนี้ฉันตัดสินใจที่จะแก้ไขวิธีการดั้งเดิมนี้และถามว่ามีค่าใด ๆ ใน IEnumarable ส่งคืนหรือไม่ถ้าไม่คืน IEnumerable ที่ไม่มีค่า นี่คือวิธีการ: public IEnumerable<Friend> FindFriends() { //Many thanks to Rex-M for his help with this one. //https://stackoverflow.com/users/67/rex-m return doc.Descendants("user").Select(user => new Friend { ID = user.Element("id").Value, Name = user.Element("name").Value, URL = user.Element("url").Value, Photo = user.Element("photo").Value }); } เนื่องจากทุกอย่างอยู่ในแถลงการณ์ส่งคืนฉันจึงไม่รู้ว่าจะทำอย่างไร อยากได้สิ่งนี้ไหม public IEnumerable<Friend> FindFriends() { //Many …
329 c#  ienumerable 

7
ใน C # จะเกิดอะไรขึ้นเมื่อคุณเรียกใช้เมธอดส่วนขยายบนวัตถุ null
มีการเรียกเมธอดด้วยค่า Null หรือให้ข้อยกเว้นการอ้างอิง Null หรือไม่? MyObject myObject = null; myObject.MyExtensionMethod(); // <-- is this a null reference exception? หากเป็นกรณีนี้ฉันไม่จำเป็นต้องตรวจสอบพารามิเตอร์ 'this' ของฉันอีกเลยใช่ไหม

6
Task.Result เหมือนกับ. GetAwaiter.GetResult () หรือไม่
ฉันเพิ่งอ่านโค้ดที่ใช้วิธีการแบบอะซิงก์จำนวนมาก แต่บางครั้งก็จำเป็นต้องเรียกใช้งานแบบซิงโครนัส รหัสทำ: Foo foo = GetFooAsync(...).GetAwaiter().GetResult(); เป็นเช่นนี้หรือไม่ Foo foo = GetFooAsync(...).Result;
328 c#  async-await 

13
ฉันจะเริ่มต้นอาร์เรย์ว่างใน C # ได้อย่างไร
เป็นไปได้หรือไม่ที่จะสร้างอาร์เรย์ว่างโดยไม่ระบุขนาด? ตัวอย่างเช่นฉันสร้าง: String[] a = new String[5]; เราสามารถสร้างอาเรย์สตริงข้างต้นโดยไม่มีขนาดได้หรือไม่?

7
เมื่อใดที่ฉันควรใช้ Lazy <T>
ฉันพบบทความนี้เกี่ยวกับLazy: ความเกียจคร้านใน C # 4.0 - Lazy แนวปฏิบัติที่ดีที่สุดในการใช้งานวัตถุ Lazy ให้ได้ประสิทธิภาพสูงสุดคืออะไร ใครบางคนชี้ให้ฉันเห็นการใช้งานจริงในแอปพลิเคชันจริง กล่าวอีกนัยหนึ่งฉันควรใช้เมื่อใด
327 c#  .net  lazy-evaluation 

17
คุณสามารถโอเวอร์โหลดคอนโทรลเลอร์ใน ASP.NET MVC ได้หรือไม่?
ฉันอยากรู้ว่าคุณสามารถโอเวอร์โหลดวิธีการควบคุมใน ASP.NET MVC ได้หรือไม่ เมื่อใดก็ตามที่ฉันพยายามฉันได้รับข้อผิดพลาดด้านล่าง ทั้งสองวิธียอมรับข้อโต้แย้งที่แตกต่างกัน นี่เป็นสิ่งที่ไม่สามารถทำได้ใช่ไหม คำขอปัจจุบันสำหรับการกระทำ 'MyMethod' ในประเภทตัวควบคุม 'MyController' นั้นไม่ชัดเจนระหว่างวิธีการดำเนินการต่อไปนี้:

4
ฉันจะบอก Moq ให้ส่งคืนภารกิจได้อย่างไร
ฉันมีอินเตอร์เฟซที่ประกาศ Task DoSomethingAsync(); ฉันใช้ MoqFramework สำหรับการทดสอบ: [TestMethod()] public async Task MyAsyncTest() { Mock&lt;ISomeInterface&gt; mock = new Mock&lt;ISomeInterface&gt;(); mock.Setup(arg =&gt; arg.DoSomethingAsync()).Callback(() =&gt; { &lt;my code here&gt; }); ... } await DoSomethingAsync()จากนั้นในการทดสอบของฉันฉันรันโค้ดที่จะเรียก และการทดสอบล้มเหลวในบรรทัดนั้น ผมทำอะไรผิดหรือเปล่า?

8
เหตุใดฉันจึงควรใช้ IHttpActionResult แทน HttpResponseMessage
ฉันได้รับการพัฒนากับ WebAPI และได้ย้ายไป WebApi2 ที่ไมโครซอฟท์ได้แนะนำใหม่อินเตอร์เฟซที่ดูเหมือนว่าจะแนะนำให้นำมาใช้มากกว่ากลับIHttpActionResult HttpResponseMessageฉันสับสนกับข้อดีของอินเทอร์เฟซใหม่นี้ มันดูเหมือนว่าส่วนใหญ่เพียงแค่ให้เล็กน้อยHttpResponseMessageวิธีที่ง่ายในการสร้าง ฉันจะโต้แย้งว่านี่เป็น "สิ่งที่เป็นนามธรรมเพื่อประโยชน์ของการเป็นนามธรรม" ฉันพลาดอะไรไปรึเปล่า? อะไรคือข้อได้เปรียบของโลกแห่งความเป็นจริงที่ฉันได้รับจากการใช้อินเทอร์เฟซใหม่นอกเหนือจากการบันทึกบรรทัดโค้ด วิธีเก่า (WebApi): public HttpResponseMessage Delete(int id) { var status = _Repository.DeleteCustomer(id); if (status) { return new HttpResponseMessage(HttpStatusCode.OK); } else { throw new HttpResponseException(HttpStatusCode.NotFound); } } วิธีใหม่ (WebApi2): public IHttpActionResult Delete(int id) { var status = _Repository.DeleteCustomer(id); if (status) { …

10
เทียบเท่าของ typedef ใน C #
มีการพิมพ์ typedef ใน C # หรือบางครั้งเพื่อให้ได้ลักษณะคล้ายกัน? ฉันทำ Google เสร็จแล้ว แต่ดูเหมือนว่าทุกที่ฉันจะลบ ขณะนี้ฉันมีสถานการณ์คล้ายกับต่อไปนี้: class GenericClass&lt;T&gt; { public event EventHandler&lt;EventData&gt; MyEvent; public class EventData : EventArgs { /* snip */ } // ... snip } ตอนนี้มันไม่ได้ใช้นักวิทยาศาสตร์จรวดที่จะเข้าใจว่าสิ่งนี้สามารถนำไปสู่การพิมพ์จำนวนมากได้อย่างรวดเร็ว (ขอโทษสำหรับปุนน่ากลัว) เมื่อพยายามที่จะดำเนินการจัดการสำหรับเหตุการณ์ที่ มันจะกลายเป็นแบบนี้: GenericClass&lt;int&gt; gcInt = new GenericClass&lt;int&gt;; gcInt.MyEvent += new EventHandler&lt;GenericClass&lt;int&gt;.EventData&gt;(gcInt_MyEvent); // ... private void gcInt_MyEvent(object …
326 c#  typedef 

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