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

C # 4.0 นำเสนอคุณลักษณะต่างๆเช่นวัตถุแบบไดนามิกการปรับปรุงการทำงานร่วมกันของ COM ความแปรปรวนร่วมทั่วไปและการตรงกันข้ามพารามิเตอร์ที่เป็นทางเลือกและตั้งชื่อ ใช้แท็กนี้หากคำถามของคุณเกี่ยวกับคุณลักษณะเฉพาะของ C # 4.0 โดยเฉพาะ ควรใช้แท็ก C # หากคำถามของคุณไม่เฉพาะเจาะจงกับคุณลักษณะ C # 4.0

9
ตัวอย่างความแปรปรวนร่วมและความแปรปรวนของโลกแห่งความจริง
ฉันมีปัญหาเล็กน้อยในการทำความเข้าใจว่าฉันจะใช้ความแปรปรวนร่วมและความแตกต่างในโลกแห่งความจริงได้อย่างไร จนถึงตอนนี้มีเพียงตัวอย่างเดียวที่ฉันเห็นเป็นตัวอย่างอาร์เรย์แบบเดิม object[] objectArray = new string[] { "string 1", "string 2" }; มันคงจะดีถ้าได้เห็นตัวอย่างที่อนุญาตให้ฉันใช้มันในระหว่างการพัฒนาของฉันถ้าฉันเห็นว่ามันถูกใช้ในที่อื่น
162 c#  c#-4.0  covariance 

7
C # สร้างใหม่ T ()
คุณสามารถเห็นสิ่งที่ฉันพยายาม (แต่ล้มเหลว) จะทำอย่างไรกับรหัสต่อไปนี้: protected T GetObject() { return new T(); } ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก. แก้ไข: บริบทมีดังนี้ ฉันเล่นกับคลาสคอนโทรลเลอร์ที่กำหนดเองเพื่อให้คอนโทรลเลอร์ทั้งหมดได้มาด้วยวิธีมาตรฐาน ดังนั้นในบริบทฉันต้องการสร้างอินสแตนซ์ใหม่ของวัตถุประเภทตัวควบคุม ดังนั้นในช่วงเวลาของการเขียนมันเป็นสิ่งที่ชอบ: public class GenericController<T> : Controller { ... protected T GetObject() { return (T)Activator.CreateInstance(ObjectType); } public ActionResult Create() { var obj = GetObject() return View(obj); } ดังนั้นฉันจึงตัดสินใจว่าการสะท้อนนั้นง่ายที่สุดที่นี่ ฉันเห็นด้วยอย่างแน่นอนเมื่อได้รับข้อความเริ่มต้นของคำถามคำตอบที่เหมาะสมที่สุดในการทำเครื่องหมายว่าถูกต้องคือคำที่ใช้ข้อ จำกัด ใหม่ () ฉันได้แก้ไขแล้ว
159 c#  .net  generics  c#-4.0  .net-4.0 

3
HttpClient ปลอดภัยที่จะใช้พร้อมกันไหม
ในตัวอย่างทั้งหมดที่ฉันสามารถหาได้จากการใช้งานHttpClientนั้นใช้สำหรับการโทรแบบครั้งเดียว แต่จะเกิดอะไรขึ้นถ้าฉันมีสถานการณ์ไคลเอนต์แบบถาวรซึ่งสามารถทำการร้องขอหลายอย่างพร้อมกันได้ โดยทั่วไปเป็นที่ปลอดภัยที่จะเรียกclient.PostAsyncใน 2 HttpClientหัวข้อในครั้งเดียวกับอินสแตนซ์เดียวกันของ ฉันไม่ได้มองหาผลการทดลองที่นี่ ในฐานะที่เป็นตัวอย่างการทำงานอาจเป็นเรื่องบังเอิญ (และตัวอย่างที่ยังคงอยู่) และตัวอย่างที่ล้มเหลวอาจเป็นปัญหาการกำหนดค่าที่ผิดพลาด เป็นการดีที่ฉันกำลังมองหาคำตอบที่มีสิทธิ์สำหรับคำถามของการจัดการภาวะพร้อมกันใน HttpClient

4
ทำไมความแปรปรวนร่วมและความแปรปรวนไม่สนับสนุนประเภทค่า
IEnumerable<T>เป็นตัวแปรร่วมแต่ไม่สนับสนุนประเภทค่าเพียงแค่ประเภทอ้างอิงเท่านั้น คอมไพล์รหัสด้านล่างเรียบง่ายสำเร็จแล้ว: IEnumerable<string> strList = new List<string>(); IEnumerable<object> objList = strList; แต่การเปลี่ยนจากstringเป็นintจะได้รับการรวบรวมข้อผิดพลาด: IEnumerable<int> intList = new List<int>(); IEnumerable<object> objList = intList; เหตุผลอธิบายไว้ในMSDN : ความแปรปรวนใช้กับประเภทอ้างอิงเท่านั้น หากคุณระบุประเภทค่าสำหรับพารามิเตอร์ประเภทตัวแปรพารามิเตอร์ประเภทนั้นจะไม่เปลี่ยนแปลงสำหรับชนิดที่สร้างขึ้นที่เกิดขึ้น ฉันค้นหาและพบว่าบางคำถามที่กล่าวถึงเหตุผลคือการชกมวยระหว่างประเภทค่าและประเภทการอ้างอิงมวยระหว่างชนิดของมูลค่าและประเภทของการอ้างอิงแต่มันยังไม่ชัดเจนในใจฉันมากนักว่าทำไมการชกมวยถึงเป็นเหตุผล? ใครช่วยกรุณาให้คำอธิบายที่เรียบง่ายและมีรายละเอียดว่าทำไมความแปรปรวนร่วมและความแตกต่างไม่สนับสนุนประเภทของค่าและการชกมวยมีผลต่อเรื่องนี้อย่างไร?

5
ความแตกต่างระหว่างความแปรปรวนร่วมและความแปรปรวน
Наэтотвопросестьответына กองมากเกินнарусском : Ковариантностьиконтрвариантностьобобщений ฉันมีปัญหาในการทำความเข้าใจความแตกต่างระหว่างความแปรปรวนร่วมและความแตกต่าง

4
วิธีรับบันทึกแรกในแต่ละกลุ่มโดยใช้ Linq
พิจารณาบันทึกต่อไปนี้: Id F1 F2 F3 ------------------------------------------------- 1 Nima 1990 10 2 Nima 1990 11 3 Nima 2000 12 4 John 2001 1 5 John 2002 2 6 Sara 2010 4 ฉันต้องการจัดกลุ่มตามF1เขตข้อมูลและจัดเรียงIdและรับเขตข้อมูลทั้งหมดจากระเบียนแรกของกลุ่มที่คล้ายกับระเบียนเหล่านี้: Id F1 F2 F3 ------------------------------------------------- 1 Nima 1990 10 4 John 2001 1 6 Sara 2010 4 ฉันจะทำสิ่งนี้โดยใช้ linq …

7
ไม่มี Main () ใน WPF?
ฉันเป็นมือใหม่ในการเขียนโปรแกรม แต่ฉันแน่ใจว่าหนึ่งในกฎสากลคือโปรแกรมเริ่มต้นด้วย Main () ฉันไม่เห็นเมื่อฉันสร้างโครงการ WPF Main () ตั้งชื่อสิ่งที่แตกต่างกันใน WPF หรือไม่
128 c#  wpf  c#-4.0  main 

8
C # 4.0: ฉันสามารถใช้ TimeSpan เป็นพารามิเตอร์เสริมที่มีค่าเริ่มต้นได้หรือไม่
ทั้งสองอย่างนี้สร้างข้อผิดพลาดที่บอกว่าต้องเป็นค่าคงที่เวลาคอมไพล์: void Foo(TimeSpan span = TimeSpan.FromSeconds(2.0)) void Foo(TimeSpan span = new TimeSpan(2000)) ก่อนอื่นใครสามารถอธิบายได้ว่าทำไมค่าเหล่านี้ไม่สามารถกำหนดได้ในเวลารวบรวม? และมีวิธีระบุค่าดีฟอลต์สำหรับอ็อบเจ็กต์ TimeSpan หรือไม่?

5
เปลี่ยนเส้นทางไปที่ Action ในคอนโทรลเลอร์อื่น
AccountControllerฉันมีสองตัวควบคุมทั้งที่เรียกว่า หนึ่งในนั้นให้เรียกว่าController Aอยู่ในการAreaโทรAdminและอีกอันให้เรียกว่าController Bไม่อยู่ในใด ๆArea(ฉันเดาว่านั่นหมายความว่าเป็นค่าเริ่มต้นArea?) Controller Bมียอดที่เรียกว่าaction method Loginฉันมีaction methodอินController Aซึ่งมีบรรทัดนี้ return RedirectToAction("LogIn", "Account"); ปัญหาคือฉันได้รับ404เมื่อบรรทัดนี้ถูกดำเนินการเนื่องจากมีความพยายามที่จะเปลี่ยนเส้นทางไปยังสิ่งที่ไม่มีอยู่actionในController A. ฉันต้องการที่จะเรียกในaction method Controller Bเป็นไปได้หรือไม่

8
ถึงเวิร์กโฟลว์หรือไม่สู่เวิร์กโฟลว์?
ฉันรับผิดชอบทีมนักพัฒนาที่กำลังจะเริ่มพัฒนาระบบการเคลมประกันที่มีน้ำหนักเบา ระบบเกี่ยวข้องกับงานด้วยตนเองและเวิร์กโฟลว์ทางธุรกิจจำนวนมากและเรากำลังพิจารณาการใช้ Windows Workflow (.NET 4.0) ตัวอย่างของโดเมนธุรกิจมีดังนี้: ผู้ถือกรมธรรม์โทรไปที่ศูนย์ติดต่อเพื่อยื่นคำร้อง "เหตุการณ์" นี้ทำให้งานย่อยสองงานเริ่มดำเนินการด้วยตนเองพร้อมกันและอาจใช้เวลาดำเนินการนาน ตรวจสอบลูกค้าว่ามีการฉ้อโกง - ขั้นตอนด้วยตนเองโดยผู้ประกอบการเรียก บริษัท สินเชื่อหลายแห่งเพื่อตรวจสอบและประเมินศักยภาพของลูกค้าที่ฉ้อโกง จากที่นี่งานย่อยสามารถป้อนสถานะย่อยได้หลายสถานะ (กำลังดำเนินการตรวจสอบ, การตรวจสอบการอ้างอิงล้มเหลว, การตรวจสอบการอ้างอิงผ่าน ฯลฯ ) ส่งสินค้าไปยังศูนย์ซ่อม - กระบวนการแบบแมนนวลซึ่งสินค้าที่ผู้ถือกรมธรรม์ยื่นข้อเรียกร้องจะถูกส่งไปที่ศูนย์ซ่อมเพื่อแก้ไข จากที่นี่งานย่อยสามารถป้อนสถานะย่อยได้หลายสถานะ (กำลังรอการซ่อมแซมอยู่ระหว่างดำเนินการซ่อมแซมโพสต์ ฯลฯ ) การอ้างสิทธิ์สามารถดำเนินการได้ต่อเมื่อสถานะของงานย่อยแต่ละงานถึงสถานะที่กำหนดไว้ล่วงหน้า (ตามกฎทางธุรกิจ) ดูเหมือนว่า Workflow จะเป็นตัวเลือกเทคโนโลยีที่ดีที่สุด อย่างไรก็ตามฉันมีข้อกังวลเล็กน้อยในการใช้ WF 4.0 ชุดทักษะ - เมื่อดูชุดทักษะของนักพัฒนาโดยเฉลี่ยแล้วฉันไม่เห็นนักพัฒนาหลายคนที่เข้าใจหรือรู้จักเวิร์กโฟลว์ ความสามารถในการบำรุงรักษา - ดูเหมือนว่าชุมชนจะได้รับการสนับสนุนเพียงเล็กน้อยสำหรับโครงการ WF 4.0 และการขาดทักษะนี้ทำให้เกิดความกังวลเกี่ยวกับความสามารถในการบำรุงรักษา อุปสรรคในการเข้า - ฉันรู้สึกว่า Windows Workflow …

10
ฉันจะตรวจสอบได้อย่างไรว่าคุณสมบัติมีอยู่ในประเภทที่ไม่ระบุตัวตนแบบไดนามิกใน c #
ฉันมีอ็อบเจ็กต์ประเภทไม่ระบุตัวตนที่ฉันได้รับเป็นไดนามิกจากวิธีการที่ฉันต้องการตรวจสอบคุณสมบัติที่มีอยู่ในอ็อบเจ็กต์นั้น .... var settings = new { Filename="temp.txt", Size=10 } ... function void Settings(dynamic settings) { var exists = IsSettingExist(settings,"Filename") } ฉันจะใช้ IsSettingExist ได้อย่างไร

4
วิธีสร้างแอตทริบิวต์ที่กำหนดเองใน C #
ฉันได้ลองหลายครั้งแล้ว แต่ก็ยังไม่เข้าใจการใช้คุณลักษณะที่กำหนดเอง (ฉันได้ดูลิงก์มากมายแล้ว) ใครช่วยอธิบายตัวอย่างพื้นฐานของแอตทริบิวต์ที่กำหนดเองพร้อมรหัสให้ฉันได้ไหม

6
ฉันจะรับหมายเลขบรรทัดปัจจุบันได้อย่างไร
นี่คือตัวอย่างของสิ่งที่ฉันต้องการทำ: MessageBox.Show("Error line number " + CurrentLineNumber); ในโค้ดด้านบนCurrentLineNumberควรเป็นหมายเลขบรรทัดในซอร์สโค้ดของโค้ดส่วนนี้ ฉันจะทำเช่นนั้นได้อย่างไร?
118 c#  wpf  c#-4.0  line-numbers 


10
ตัวดำเนินการ C # เกินสำหรับ `+ =`?
ฉันพยายามทำโอเปอเรเตอร์โอเวอร์โหลด+=แต่ทำไม่ได้ ฉันสามารถทำให้ตัวดำเนินการเกินพิกัดสำหรับ+. มาได้ยังไง? แก้ไข เหตุผลนี้ใช้ไม่ได้คือฉันมีคลาส Vector (พร้อมช่อง X และ Y) ลองพิจารณาตัวอย่างต่อไปนี้ vector1 += vector2; หากตัวดำเนินการของฉันโอเวอร์โหลดถูกตั้งค่าเป็น: public static Vector operator +(Vector left, Vector right) { return new Vector(right.x + left.x, right.y + left.y); } จากนั้นผลลัพธ์จะไม่ถูกเพิ่มลงใน vector1 แต่ vector1 จะกลายเป็น Vector ใหม่โดยการอ้างอิงเช่นกัน

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