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

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

26
Foreach loop กำหนดว่าการวนซ้ำครั้งสุดท้ายของลูปคืออะไร
ฉันมีforeachลูปและจำเป็นต้องดำเนินการตรรกะบางอย่างเมื่อเลือกรายการสุดท้ายจากList, เช่น: foreach (Item result in Model.Results) { //if current result is the last item in Model.Results //then do something in the code } ฉันจะรู้ได้อย่างไรว่าลูปใดที่ล่าสุดโดยไม่ใช้ลูปและตัวนับ
233 c#  asp.net  foreach 

4
การเพิ่มคุณสมบัติแบบไดนามิกไปยัง ExpandoObject
ฉันต้องการเพิ่มคุณสมบัติให้กับ ExpandoObject ตอนรันไทม์ ตัวอย่างเช่นการเพิ่มคุณสมบัติสตริงเรียก NewProp ฉันต้องการเขียนบางสิ่งเช่น var x = new ExpandoObject(); x.AddProperty("NewProp", System.String); เป็นไปได้อย่างง่ายดายหรือไม่

10
ฉันจะแยกสตริงด้วยตัวคั่นแบบหลายอักขระใน C # ได้อย่างไร
ถ้าฉันต้องการแยกสตริงโดยใช้ตัวคั่นที่เป็นคำ ตัวอย่างเช่นThis is a sentence. ฉันต้องการที่จะแยกisและได้รับและThisa sentence ในJavaฉันสามารถส่งสตริงเป็นตัวคั่น แต่ฉันจะทำสิ่งนี้ได้C#อย่างไร
232 c#  .net  string 

11
ทำไม. NET foreach วนโยน NullRefException เมื่อคอลเลกชันเป็นโมฆะ?
ดังนั้นฉันมักพบในสถานการณ์นี้ ... ซึ่งDo.Something(...)ส่งกลับคอลเลกชัน null เช่น: int[] returnArray = Do.Something(...); จากนั้นฉันพยายามใช้คอลเล็กชันนี้เช่น: foreach (int i in returnArray) { // do some more stuff } ฉันแค่อยากรู้อยากเห็นทำไมห่วง foreach ไม่สามารถทำงานในคอลเลกชันโมฆะ? มันดูเหมือนว่าตรรกะกับผมว่า 0 ซ้ำจะได้รับการดำเนินการด้วยคอลเลกชันโมฆะ ... NullReferenceExceptionแทนที่จะพ่น ใครรู้ว่าทำไมสิ่งนี้อาจเป็น นี่เป็นเรื่องที่น่ารำคาญเพราะฉันทำงานกับ API ที่ไม่ชัดเจนว่าพวกเขากลับมาได้อย่างไรดังนั้นฉันก็เลยลงเอยด้วยif (someCollection != null)ทุกที่ ... แก้ไข:ขอบคุณทุกท่านสำหรับคำอธิบายที่foreachใช้GetEnumeratorและหากไม่มีตัวแจงนับที่จะได้รับ foreach จะล้มเหลว ฉันเดาว่าฉันถามว่าทำไมภาษา / รันไทม์ไม่สามารถหรือไม่ตรวจสอบโมฆะก่อนที่จะจับตัวแจงนับ สำหรับฉันดูเหมือนว่าพฤติกรรมจะยังคงชัดเจน
231 c#  .net 

18
ฉันจะแยกสตริงที่มีจุดทศนิยมให้เป็นสองเท่าได้อย่างไร
ฉันต้องการที่จะแยกสตริงเหมือน"3.5"คู่ อย่างไรก็ตาม double.Parse("3.5") ให้ผลตอบแทน 35 และ double.Parse("3.5", System.Globalization.NumberStyles.AllowDecimalPoint) FormatExceptionพ่น ตอนนี้ตำแหน่งที่ตั้งของคอมพิวเตอร์ของฉันถูกตั้งค่าเป็นภาษาเยอรมันโดยที่ใช้เครื่องหมายจุลภาคเป็นตัวคั่นทศนิยม อาจต้องทำอะไรกับมันและdouble.Parse()คาดหวังว่าจะ"3,5"เป็นอินพุท แต่ฉันไม่แน่ใจ ฉันจะแยกสตริงที่มีตัวเลขทศนิยมที่อาจหรือไม่สามารถจัดรูปแบบตามที่ระบุในสถานที่ปัจจุบันของฉันได้อย่างไร
231 c#  string  parsing  double 

11
รับ DateTime ตอนนี้ด้วยความแม่นยำมิลลิวินาที
ฉันจะสร้างการประทับเวลาตามเวลาจริงด้วยความแม่นยำเป็นมิลลิวินาทีได้อย่างไร ฉันต้องการบางอย่างเช่น 16.4.2013 9: 48: 00: 123 เป็นไปได้ไหม ฉันมีแอปพลิเคชันที่ฉันสุ่มค่า 10 ครั้งต่อวินาทีและฉันต้องแสดงในกราฟ

12
วิธีการเรียก async แบบซิงโครนัส
ฉันมีasyncวิธี: public async Task<string> GenerateCodeAsync() { string code = await GenerateCodeService.GenerateCodeAsync(); return code; } ฉันต้องเรียกวิธีนี้จากวิธีการแบบซิงโครนัส ฉันจะทำสิ่งนี้ได้โดยไม่ต้องทำซ้ำGenerateCodeAsyncวิธีเพื่อให้สามารถทำงานพร้อมกันได้หรือไม่ ปรับปรุง ยังไม่พบวิธีแก้ไขที่สมเหตุสมผล อย่างไรก็ตามฉันเห็นว่าHttpClientใช้รูปแบบนี้แล้ว using (HttpClient client = new HttpClient()) { // async HttpResponseMessage responseAsync = await client.GetAsync(url); // sync HttpResponseMessage responseSync = client.GetAsync(url).Result; }

12
การเพิ่มบรรทัดใหม่ในสตริงใน C #
ฉันมีสาย string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@"; ฉันต้องเพิ่มบรรทัดใหม่หลังจากทุกสัญลักษณ์ "@" ปรากฏในสตริง ผลลัพธ์ของฉันควรเป็นเช่นนี้ fkdfdsfdflkdkfk@ dfsdfjk72388389@ kdkfkdfkkl@ jkdjkfjd@ jjjk@
230 c#  string 

10
ทำไม Response.Redirect ทำให้เกิด System.Threading.ThreadAbortException
เมื่อฉันใช้ Response.Redirect (... ) เพื่อเปลี่ยนเส้นทางแบบฟอร์มของฉันไปยังหน้าใหม่ฉันได้รับข้อผิดพลาด: มีโอกาสเกิดข้อยกเว้นครั้งแรกของประเภท 'System.Threading.ThreadAbortException' เกิดขึ้นใน mscorlib.dll ข้อยกเว้นประเภท 'System.Threading.Thread.ThreadAbortException' เกิดขึ้นใน mscorlib.dll แต่ไม่ได้รับการจัดการในรหัสผู้ใช้ ความเข้าใจของฉันเกี่ยวกับเรื่องนี้คือข้อผิดพลาดที่เกิดจากเว็บเซิร์ฟเวอร์ยกเลิกส่วนที่เหลือของหน้าเว็บที่มีการตอบสนอง ฉันรู้ว่าฉันสามารถเพิ่มพารามิเตอร์ตัวที่สองให้กับResponse.Redirectที่เรียกว่า endResponse หากฉันตั้งค่า endResponse เป็น True ฉันยังคงได้รับข้อผิดพลาด แต่ถ้าฉันตั้งค่าเป็น False ฉันจะไม่ทำเช่นนั้น ฉันค่อนข้างแน่ใจว่านั่นหมายความว่าเว็บเซิร์ฟเวอร์กำลังเรียกใช้ส่วนที่เหลือของหน้าที่ฉันเปลี่ยนเส้นทางไปจาก ซึ่งดูเหมือนจะไม่มีประสิทธิภาพที่จะพูดน้อย มีวิธีที่ดีกว่าในการทำเช่นนี้? มีวิธีอื่นนอกเหนือจากResponse.Redirectหรือมีวิธีการบังคับให้หน้าเก่าหยุดการโหลดที่ฉันจะไม่ได้รับThreadAbortExceptionหรือไม่
230 c#  asp.net  .net-3.5 

12
การใช้ 'var' จะส่งผลกระทบต่อประสิทธิภาพหรือไม่
ก่อนหน้านี้ฉันถามคำถามเกี่ยวกับสาเหตุที่ฉันเห็นตัวอย่างมากมายที่ใช้varคำหลักและได้รับคำตอบว่าในขณะที่จำเป็นเฉพาะกับประเภทที่ไม่ระบุตัวตนเท่านั้น แต่มันถูกใช้เพื่อทำให้การเขียนโค้ด 'เร็วขึ้น' / ง่ายขึ้นและ 'เพียงเพราะ' ต่อไปนี้การเชื่อมโยงนี้ ( "C # 3.0 - Var ไม่ได้ objec")ผมเห็นว่าvarได้รับการรวบรวมลงไปชนิดที่ถูกต้องในอิลลินอยส์ (คุณจะเห็นมันเกี่ยวกับตรงกลางลงบทความ) คำถามของฉันคือยิ่งกว่านั้นหากมีรหัส IL ใช้varคำหลักนั้นและจะใกล้เคียงกับการวัดระดับประสิทธิภาพของรหัสหากมีการใช้ทุกที่หรือไม่
230 c#  performance  variables  var 

4
ไลบรารี Inject (In) Dependency Inject (มิตร)
ฉันไตร่ตรองการออกแบบห้องสมุด C # ที่จะมีฟังก์ชั่นระดับสูงที่แตกต่างกันหลายอย่าง แน่นอนว่าฟังก์ชั่นระดับสูงเหล่านั้นจะถูกนำไปใช้โดยใช้หลักการออกแบบคลาสSOLIDให้มากที่สุด ดังนั้นจึงอาจมีคลาสที่ตั้งใจให้ผู้บริโภคใช้โดยตรงเป็นประจำและ "คลาสที่รองรับ" ที่ขึ้นต่อกันของคลาส "ผู้ใช้ปลายทาง" ทั่วไป คำถามคือวิธีที่ดีที่สุดในการออกแบบห้องสมุดคือ: ผู้ไม่เชื่อเรื่องพระเจ้า - แม้ว่าการเพิ่ม "การสนับสนุน" พื้นฐานสำหรับหนึ่งหรือสองของห้องสมุด DI ทั่วไป (โครงสร้างแผนที่, Ninject, ฯลฯ ) ดูเหมือนว่าสมเหตุสมผลฉันต้องการให้ผู้บริโภคสามารถใช้ห้องสมุดที่มีกรอบ DI ใด ๆ ใช้งานไม่ได้ DI - หากผู้บริโภคของห้องสมุดไม่ใช้ DI ห้องสมุดก็ควรจะใช้งานได้ง่ายที่สุดเท่าที่จะเป็นไปได้ลดปริมาณงานที่ผู้ใช้ต้องทำเพื่อสร้างการพึ่งพา "ไม่สำคัญ" เหล่านี้ทั้งหมดเพียงเพื่อ คลาส "ของจริง" ที่พวกเขาต้องการใช้ ความคิดปัจจุบันของฉันคือการจัดหา "DI registration modules" สองสามข้อสำหรับไลบรารี DI ทั่วไป (เช่นรีจิสทรี StructureMap, โมดูล Ninject) และชุดชั้นเรียนหรือชุดโรงงานที่ไม่ได้เป็น DI …

6
Namespace สำหรับ [DataContract]
ฉันไม่สามารถค้นหาเนมสเปซที่จะใช้สำหรับ[DataContract]และ[DataMember]องค์ประกอบ จากสิ่งที่ฉันพบดูเหมือนว่าการเพิ่มสิ่งต่อไปนี้น่าจะเพียงพอ แต่ในกรณีของฉันมันไม่เป็นเช่นนั้น using System; using System.Runtime.Serialization; นี่คือตัวอย่างรหัสของฉัน: using System; using System.Runtime.Serialization; namespace MyNamespace { [DataContract] public class Tuple<T1, T2> { // A custom implementation of a Tuple //... //... } } และข้อผิดพลาดที่ฉันได้รับ: ไม่พบประเภทหรือชื่อเนมสเปซ 'DataContract' (คุณพลาดการใช้คำสั่งหรือการอ้างอิงแอสเซมบลีหรือไม่) ฉันไม่ได้ใช้เนมสเปซที่ใช่ไหม?
230 c#  wcf  datacontract 

10
วิธีการเปลี่ยนการหมดเวลาบนวัตถุ. NET WebClient
ฉันพยายามดาวน์โหลดข้อมูลลูกค้าไปยังเครื่องท้องถิ่นของฉัน (โดยทางโปรแกรม) และเว็บเซิร์ฟเวอร์ของพวกเขาช้ามากซึ่งทำให้หมดเวลาในWebClientวัตถุของฉัน นี่คือรหัสของฉัน: WebClient webClient = new WebClient(); webClient.Encoding = Encoding.UTF8; webClient.DownloadFile(downloadUrl, downloadFile); มีวิธีการตั้งค่าการหมดเวลาไม่สิ้นสุดกับวัตถุนี้หรือไม่? หรือถ้าไม่มีใครสามารถช่วยฉันด้วยตัวอย่างในวิธีอื่นในการทำเช่นนี้? URL ทำงานได้ดีในเบราว์เซอร์ - ใช้เวลาแสดงประมาณ 3 นาที
230 c#  .net  file  download  webclient 

16
ความแม่นยำและมาตราส่วนทศนิยมใน EF Code First
ฉันกำลังทดลองกับวิธีแรกของรหัสนี้ แต่ตอนนี้ฉันรู้แล้วว่าคุณสมบัติของ System.Decimal ได้รับการแมปกับคอลัมน์ sql ของทศนิยมประเภท (18, 0) ฉันจะตั้งค่าความแม่นยำของคอลัมน์ฐานข้อมูลได้อย่างไร

10
สร้างอินสแตนซ์ประเภททั่วไปที่ตัวสร้างต้องการพารามิเตอร์หรือไม่
หากBaseFruitมีคอนสตรัคเตอร์ที่ยอมรับได้int weightฉันจะยกตัวอย่างผลไม้ในวิธีทั่วไปแบบนี้ได้ไหม public void AddFruit<T>()where T: BaseFruit{ BaseFruit fruit = new T(weight); /*new Apple(150);*/ fruit.Enlist(fruitManager); } ตัวอย่างถูกเพิ่มไว้ข้างหลังความคิดเห็น ดูเหมือนว่าฉันจะทำสิ่งนี้ได้ก็ต่อเมื่อฉันให้BaseFruitนวกรรมิกแบบไม่มีพารามิเตอร์แล้วเติมทุกอย่างผ่านตัวแปรสมาชิก ในรหัสที่แท้จริงของฉัน (ไม่เกี่ยวกับผลไม้) นี้ค่อนข้างทำไม่ได้ - อัปเดต - ดังนั้นจึงไม่สามารถแก้ไขได้ด้วยข้อ จำกัด แต่อย่างใด จากคำตอบมีสามวิธีแก้ปัญหาผู้สมัคร: รูปแบบโรงงาน การสะท้อน Activator ฉันมักจะคิดว่าการไตร่ตรองนั้นสะอาดน้อยที่สุด แต่ฉันก็ไม่สามารถตัดสินใจได้ระหว่างสองสิ่งนี้
230 c#  .net  generics 

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