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

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

21
การดึงชื่อคุณสมบัติจากแลมบ์ดานิพจน์
มีวิธีที่ดีกว่าที่จะได้รับชื่อทรัพย์สินเมื่อส่งผ่านผ่านการแสดงออกแลมบ์ดา? นี่คือสิ่งที่ฉันมีอยู่ในปัจจุบัน เช่น. GetSortingInfo<User>(u => u.UserId); มันทำงานโดยการหล่อมันเป็น memberexpression เฉพาะเมื่อคุณสมบัติเป็นสตริง เพราะคุณสมบัติไม่ทั้งหมดเป็นสตริงที่ฉันต้องใช้วัตถุ แต่แล้วมันจะส่งกลับ unaryexpression สำหรับเหล่านั้น public static RouteValueDictionary GetInfo<T>(this HtmlHelper html, Expression<Func<T, object>> action) where T : class { var expression = GetMemberInfo(action); string name = expression.Member.Name; return GetInfo(html, name); } private static MemberExpression GetMemberInfo(Expression method) { LambdaExpression lambda = method as …


20
การเพิ่มค่าให้กับอาร์เรย์ C #
อาจเป็นเรื่องง่าย ๆ แบบนี้ - ฉันเริ่มต้นด้วย C # และต้องการเพิ่มค่าให้กับอาร์เรย์ตัวอย่างเช่น: int[] terms; for(int runs = 0; runs < 400; runs++) { terms[] = runs; } สำหรับผู้ที่ใช้ PHP นี่คือสิ่งที่ฉันพยายามทำใน C #: $arr = array(); for ($i = 0; $i < 10; $i++) { $arr[] = $i; }
511 c#  arrays 

7
ทำไม C # ห้ามประเภทแอตทริบิวต์ทั่วไป?
สิ่งนี้ทำให้เกิดข้อยกเว้นเวลาคอมไพล์: public sealed class ValidatesAttribute<T> : Attribute { } [Validates<string>] public static class StringValidation { } ฉันรู้ว่า C # ไม่รองรับคุณสมบัติทั่วไป อย่างไรก็ตามหลังจาก Googling มากฉันไม่สามารถหาเหตุผลได้ ไม่มีใครรู้ว่าทำไมประเภททั่วไปไม่สามารถได้มาจากAttributeไหน? ทฤษฎีใด ๆ

17
ฉันจะอัพเดตบรรทัดปัจจุบันในแอพ C # Windows Console ได้อย่างไร?
เมื่อสร้าง Windows Console App ใน C # เป็นไปได้ไหมที่จะเขียนไปยังคอนโซลโดยไม่ต้องขยายบรรทัดปัจจุบันหรือไปที่บรรทัดใหม่? ตัวอย่างเช่นหากฉันต้องการแสดงเปอร์เซ็นต์ที่แสดงว่ากระบวนการเสร็จสิ้นแล้วฉันต้องการอัปเดตค่าในบรรทัดเดียวกับเคอร์เซอร์และไม่ต้องใส่แต่ละเปอร์เซ็นต์ในบรรทัดใหม่ สามารถทำได้ด้วยแอปคอนโซล "มาตรฐาน" C # หรือไม่
507 c#  windows  console 

19
ฉันจะค้นหาวิธีที่เรียกว่าวิธีการปัจจุบันได้อย่างไร
เมื่อเข้าสู่ระบบใน C # ฉันจะเรียนรู้ชื่อของวิธีการที่เรียกว่าวิธีการในปัจจุบันได้อย่างไร ฉันรู้ทุกอย่างเกี่ยวกับSystem.Reflection.MethodBase.GetCurrentMethod()แต่ฉันต้องการไปหนึ่งขั้นตอนด้านล่างนี้ในกองติดตาม ฉันได้พิจารณาการแยกการติดตามสแต็ก แต่ฉันหวังว่าจะค้นหาวิธีที่ชัดเจนยิ่งขึ้นซึ่งเป็นวิธีที่ชัดเจนAssembly.GetCallingAssembly()กว่า

7
XDocument หรือ XmlDocument
ตอนนี้ฉันกำลังเรียนรู้XmlDocumentแต่ฉันเพิ่งพบเจอXDocumentและเมื่อฉันพยายามค้นหาความแตกต่างหรือผลประโยชน์ของพวกเขาฉันไม่สามารถหาสิ่งที่มีประโยชน์ได้คุณช่วยบอกฉันหน่อยได้ไหมว่าทำไมคุณถึงใช้สิ่งอื่น

7
async / await - เมื่อใดที่จะส่งคืน Task vs void?
ภายใต้สถานการณ์ใดที่เราจะต้องการใช้ public async Task AsyncMethod(int num) แทน public async void AsyncMethod(int num) สถานการณ์เดียวที่ฉันนึกออกคือถ้าคุณต้องการให้ภารกิจติดตามความคืบหน้า นอกจากนี้ในวิธีต่อไปนี้ async และรอคำสำคัญไม่จำเป็นหรือไม่ public static async void AsyncMethod2(int num) { await Task.Factory.StartNew(() => Thread.Sleep(num)); }

16
อัปเดตวัตถุทั้งหมดในชุดรวมโดยใช้ LINQ
มีวิธีการทำสิ่งต่อไปนี้โดยใช้ LINQ หรือไม่? foreach (var c in collection) { c.PropertyToSet = value; } เพื่อชี้แจงฉันต้องการย้ำผ่านแต่ละวัตถุในคอลเลกชันแล้วปรับปรุงคุณสมบัติในแต่ละวัตถุ กรณีการใช้งานของฉันคือฉันมีความคิดเห็นมากมายในบล็อกโพสต์และฉันต้องการย้ำผ่านแต่ละความคิดเห็นในบล็อกโพสต์และตั้งค่าวันที่ในบล็อกโพสต์ให้เป็น +10 ชั่วโมง ฉันสามารถทำได้ใน SQL แต่ฉันต้องการเก็บไว้ในชั้นธุรกิจ
500 c#  .net  linq  foreach 


5
ฉันจะตรวจสอบได้อย่างไรว่าคีย์พจนานุกรมนี้มีอยู่ใน C # หรือไม่
ฉันกำลังทำงานกับ Exchange Web Services Managed API ที่มีข้อมูลติดต่อ ฉันมีรหัสต่อไปนี้ซึ่งทำงานได้ แต่ไม่เหมาะ: foreach (Contact c in contactList) { string openItemUrl = "https://" + service.Url.Host + "/owa/" + c.WebClientReadFormQueryString; row = table.NewRow(); row["FileAs"] = c.FileAs; row["GivenName"] = c.GivenName; row["Surname"] = c.Surname; row["CompanyName"] = c.CompanyName; row["Link"] = openItemUrl; //home address try { row["HomeStreet"] = c.PhysicalAddresses[PhysicalAddressKey.Home].Street.ToString(); …

18
รายการ <T> หรือ IList <T> [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน7 เดือนที่ผ่านมา ใครสามารถอธิบายให้ฉันทำไมฉันต้องการใช้ IList มากกว่ารายชื่อใน C #? คำถามที่เกี่ยวข้อง: เหตุใดจึงถือว่าไม่ดีที่จะเปิดเผยList&lt;T&gt;
495 c#  list  generics 


22
คุณจะใช้พารามิเตอร์ทางเลือกใน C # ได้อย่างไร?
หมายเหตุ:คำถามนี้ถูกถามในเวลาที่ C # ยังไม่สนับสนุนพารามิเตอร์ทางเลือก (เช่นก่อนหน้า C # 4) เรากำลังสร้างเว็บ API ที่สร้างโดยทางโปรแกรมจากคลาส C # ชั้นมีวิธีการGetFooBar(int a, int b)และ API มีวิธีGetFooBarการ params &amp;a=foo &amp;b=barแบบสอบถามเหมือน คลาสจำเป็นต้องสนับสนุนพารามิเตอร์ทางเลือกซึ่งไม่ได้รับการสนับสนุนในภาษา C # วิธีที่ดีที่สุดคืออะไร

26
การรวมพจนานุกรมใน C #
วิธีที่ดีที่สุดในการผสานพจนานุกรม 2 หรือมากกว่าDictionary&lt;T1,T2&gt;ใน C # คืออะไร (คุณสมบัติ 3.0 เช่น LINQ ใช้ได้) ฉันกำลังคิดถึงวิธีการที่เป็นลายเซ็นตามบรรทัดของ: public static Dictionary&lt;TKey,TValue&gt; Merge&lt;TKey,TValue&gt;(Dictionary&lt;TKey,TValue&gt;[] dictionaries); หรือ public static Dictionary&lt;TKey,TValue&gt; Merge&lt;TKey,TValue&gt;(IEnumerable&lt;Dictionary&lt;TKey,TValue&gt;&gt; dictionaries); แก้ไข:มีวิธีแก้ปัญหาที่ยอดเยี่ยมจาก JaredPar และ Jon Skeet แต่ฉันคิดถึงสิ่งที่จัดการกับคีย์ที่ซ้ำกัน ในกรณีที่มีการชนกันมันไม่สำคัญว่าจะบันทึกค่าใดไว้ในคำสั่งตราบเท่าที่มันสอดคล้องกัน
493 c#  dictionary  merge 

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