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

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

4
เปลี่ยนเส้นทางจากการดำเนินการโพสต์เว็บ api ของเว็บ asp.net
ฉันใหม่มากกับ ASP.NET 4.0 Web API เราสามารถเปลี่ยนเส้นทางไปยัง URL อื่นเมื่อสิ้นสุดการดำเนินการ POST ได้หรือไม่เช่น ...Response.Redirect(url) อันที่จริงฉันอัปโหลดไฟล์จากแอปพลิเคชัน MVC (พูดwww.abcmvc.com) ผ่าน Web API (พูดwww.abcwebapi.com/upload) นี่uploadคือการดำเนินการโพสต์ ฉันโพสต์รูปแบบหลายส่วนไปยังการดำเนินการโพสต์ของตัวควบคุมการอัปโหลด Web API www.abcmvc.comหลังจากอัปโหลดผมอยากจะเปลี่ยนเส้นทางกลับไป เป็นไปได้หรือไม่


9
วิธีการลบวัตถุเดียวออกจาก ConcurrentBag <>?
ด้วยสิ่งใหม่ConcurrentBag&lt;T&gt;ใน. NET 4 คุณจะลบออบเจ็กต์เฉพาะบางอย่างออกจากวัตถุได้อย่างไรเมื่อมีเพียงTryTake()และTryPeek()พร้อมใช้งาน ฉันกำลังคิดว่าจะใช้TryTake()แล้วเพิ่มวัตถุที่เป็นผลลัพธ์กลับเข้าไปในรายการถ้าฉันไม่ต้องการลบออก แต่ฉันรู้สึกว่าฉันอาจจะขาดอะไรไป นี้เป็นวิธีที่ถูกต้องหรือไม่?
109 c#  c#-4.0 

3
การเริ่มต้นอาจไม่ถูกเรียกใช้ในงานลักษณะสัญญา ข้อยกเว้นกำลังจะมาถึง
ฉันกำลังสร้างแอปพลิเคชันเดสก์ท็อป wpf แบบธรรมดา UI มีเพียงปุ่มและรหัสในไฟล์. cs เช่น. private void Button_Click_2(object sender, RoutedEventArgs e) { FunctionA(); } public void FunctionA() { Task.Delay(5000).Start(); MessageBox.Show("Waiting Complete"); } แต่ที่น่าแปลกใจTask.Delay(5000).Start();คือการขว้างปาInvalidOperationException: การเริ่มต้นอาจไม่ถูกเรียกใช้ในงานลักษณะสัญญา มีใครช่วยได้ไหมว่าทำไมถึงเป็นแบบนี้?
109 c#  c#-4.0  .net-4.0 


2
Generic Covariance & Contra-variance ดำเนินการอย่างไรใน C # 4.0
ฉันไม่ได้เข้าร่วม PDC 2008 แต่ฉันได้ยินข่าวมาว่า C # 4.0 ได้รับการประกาศเพื่อรองรับความแปรปรวนร่วมทั่วไปและความแปรปรวนตรงกันข้าม นั่นคือสามารถกำหนดให้List&lt;string&gt; List&lt;object&gt;เป็นไปได้อย่างไร? ในหนังสือC # in Depthของ Jon Skeet อธิบายว่าทำไม C # generics ไม่สนับสนุนความแปรปรวนร่วมและความแปรปรวนตรงกันข้าม ส่วนใหญ่เป็นการเขียนโค้ดที่ปลอดภัย ตอนนี้ C # 4.0 เปลี่ยนไปรองรับพวกเขาแล้ว มันจะนำมาซึ่งความสับสนวุ่นวาย? ใครทราบรายละเอียดเกี่ยวกับ C # 4.0 ช่วยให้คำอธิบายได้บ้าง?

10
วิธีเพิ่มและรับค่าส่วนหัวใน WebApi
ฉันต้องการสร้างวิธีการ POST ใน WebApi เพื่อที่ฉันจะได้ส่งข้อมูลจากแอปพลิเคชันไปยังวิธี WebApi ฉันไม่สามารถรับค่าส่วนหัวได้ ที่นี่ฉันได้เพิ่มค่าส่วนหัวในแอปพลิเคชัน: using (var client = new WebClient()) { // Set the header so it knows we are sending JSON. client.Headers[HttpRequestHeader.ContentType] = "application/json"; client.Headers.Add("Custom", "sample"); // Make the request var response = client.UploadString(url, jsonObj); } ทำตามวิธีการโพสต์ WebApi: public string Postsam([FromBody]object jsonData) { HttpRequestMessage re …


3
เหตุใดเงื่อนไข (null ||! tryParse) จึงทำให้เกิด "การใช้ตัวแปรภายในที่ไม่ได้กำหนด"
โค้ดต่อไปนี้ส่งผลให้ใช้ตัวแปรโลคัล "numberOfGroups" ที่ไม่ได้กำหนด : int numberOfGroups; if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups)) { numberOfGroups = 10; } อย่างไรก็ตามรหัสนี้ใช้งานได้ดี (แม้ว่าReSharperกล่าวว่า= 10ซ้ำซ้อน): int numberOfGroups = 10; if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups)) { numberOfGroups = 10; } ฉันขาดอะไรไปหรือคอมไพเลอร์ไม่ชอบของฉัน||? ฉันได้ จำกัด สิ่งนี้ให้แคบลงจนdynamicทำให้เกิดปัญหา ( optionsเป็นตัวแปรแบบไดนามิกในโค้ดด้านบนของฉัน) คำถามยังคงอยู่ทำไมฉันถึงทำสิ่งนี้ไม่ได้? รหัสนี้ไม่ได้รวบรวม: internal class Program { #region …


3
วิธีการขยายและวัตถุแบบไดนามิก
ฉันจะสรุปปัญหาของฉันเป็นข้อมูลโค้ดต่อไปนี้ List&lt;int&gt; list = new List&lt;int&gt;() { 5, 56, 2, 4, 63, 2 }; Console.WriteLine(list.First()); โค้ดด้านบนใช้งานได้ดี ตอนนี้ฉันลองทำสิ่งต่อไปนี้แล้ว dynamic dList = list; Console.WriteLine(dList.First()); แต่ฉันได้รับ RuntimeBinderException ทำไมจึงเป็นเช่นนั้น
97 c#  dynamic  c#-4.0 

3
ตรวจสอบว่ารายการ <t> มีรายการอื่นหรือไม่
ฉันมีรายการพารามิเตอร์ดังนี้: public class parameter { public string name {get; set;} public string paramtype {get; set;} public string source {get; set;} } IEnumerable&lt;Parameter&gt; parameters; และอาร์เรย์ของสตริงที่ฉันต้องการตรวจสอบ string[] myStrings = new string[] { "one", "two"}; ฉันต้องการวนซ้ำรายการพารามิเตอร์และตรวจสอบว่าคุณสมบัติต้นทางเท่ากับอาร์เรย์ myStrings หรือไม่ ฉันสามารถทำได้ด้วย foreach ที่ซ้อนกัน แต่ฉันต้องการเรียนรู้วิธีการทำในวิธีที่ดีกว่าเนื่องจากฉันเล่นกับ linq และชอบวิธีการขยายในการแจกแจงเช่นที่อื่น ๆ ดังนั้น foreach ที่ซ้อนกันจึงรู้สึกผิด มีวิธี linq / lambda / …
97 c#  list  loops  c#-4.0  subset 

2
Moq, SetupGet, การเยาะเย้ยคุณสมบัติ
ฉันพยายามล้อเลียนคลาสที่เรียกว่าUserInputEntityซึ่งมีคุณสมบัติที่เรียกว่าColumnNames: (มันมีคุณสมบัติอื่น ๆ ฉันเพิ่งทำให้มันง่ายขึ้นสำหรับคำถาม) namespace CsvImporter.Entity { public interface IUserInputEntity { List&lt;String&gt; ColumnNames { get; set; } } public class UserInputEntity : IUserInputEntity { public UserInputEntity(List&lt;String&gt; columnNameInputs) { ColumnNames = columnNameInputs; } public List&lt;String&gt; ColumnNames { get; set; } } } ฉันมีชั้นเรียนผู้นำเสนอ: namespace CsvImporter.UserInterface { public interface IMainPresenterHelper { //... …
94 c#  c#-4.0  properties  moq 

13
คุณควรประกาศวิธีการโดยใช้โอเวอร์โหลดหรือพารามิเตอร์เสริมใน C # 4.0 หรือไม่?
ฉันกำลังดูการพูดคุยของ Anders เกี่ยวกับ C # 4.0 และดูตัวอย่างของ C # 5.0และทำให้ฉันนึกถึงเมื่อพารามิเตอร์ที่เป็นทางเลือกมีอยู่ใน C # จะเป็นวิธีที่แนะนำในการประกาศวิธีการที่ไม่จำเป็นต้องระบุพารามิเตอร์ทั้งหมด ยกตัวอย่างเช่นบางอย่างเช่นFileStreamชั้นจะมีประมาณสิบห้าก่อสร้างงานแตกต่างกันซึ่งสามารถแบ่งออกเป็น 'ครอบครัว' ตรรกะเช่นคนที่อยู่ด้านล่างจากสตริงคนจากและคนที่มาจากที่IntPtrSafeFileHandle FileStream(string,FileMode); FileStream(string,FileMode,FileAccess); FileStream(string,FileMode,FileAccess,FileShare); FileStream(string,FileMode,FileAccess,FileShare,int); FileStream(string,FileMode,FileAccess,FileShare,int,bool); สำหรับฉันแล้วดูเหมือนว่ารูปแบบประเภทนี้สามารถทำให้ง่ายขึ้นได้โดยมีตัวสร้างสามตัวแทนและใช้พารามิเตอร์ที่เป็นทางเลือกสำหรับพารามิเตอร์ที่สามารถเป็นค่าเริ่มต้นได้ซึ่งจะทำให้ตระกูลต่างๆของตัวสร้างมีความแตกต่างกันมากขึ้น [หมายเหตุ: ฉันรู้ว่าการเปลี่ยนแปลงนี้จะไม่มี ทำใน BCL ฉันกำลังพูดถึงสมมุติฐานสำหรับสถานการณ์ประเภทนี้] คุณคิดอย่างไร? จาก C # 4.0 จะเหมาะสมกว่าหรือไม่ที่จะทำให้กลุ่มตัวสร้างและวิธีการที่เกี่ยวข้องอย่างใกล้ชิดเป็นวิธีการเดียวที่มีพารามิเตอร์เสริมหรือมีเหตุผลที่ดีที่จะยึดติดกับกลไกการโอเวอร์โหลดแบบดั้งเดิม

7
วิธีตรวจสอบว่าค่าสตริงอยู่ในรายการ Enum หรือไม่
?age=New_Bornในสตริงแบบสอบถามของฉันฉันมีตัวแปรอายุ มีวิธีตรวจสอบว่าค่าสตริงนี้New_Bornอยู่ในรายการ Enum ของฉันหรือไม่ [Flags] public enum Age { New_Born = 1, Toddler = 2, Preschool = 4, Kindergarten = 8 } ตอนนี้ฉันสามารถใช้คำสั่ง if ได้ แต่ถ้ารายการ Enum ของฉันใหญ่ขึ้น ผมอยากหาวิธีที่ดีกว่านี้ ฉันกำลังคิดจะใช้ Linq แต่ไม่แน่ใจว่าจะทำอย่างไร
92 c#  c#-4.0  c#-3.0 

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