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

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

12
รับข้อความทั้งหมดจาก InnerException หรือไม่
มีวิธีใดในการเขียนโค้ด "มือสั้น" สไตล์ LINQ สำหรับการเดินไปยังทุกระดับของ InnerException (s) ของ Exception ที่ถูกโยน? ฉันอยากจะเขียนแทนการเรียกฟังก์ชันส่วนขยาย (ตามด้านล่าง) หรือสืบทอดExceptionคลาส static class Extensions { public static string GetaAllMessages(this Exception exp) { string message = string.Empty; Exception innerException = exp; do { message = message + (string.IsNullOrEmpty(innerException.Message) ? string.Empty : innerException.Message); innerException = innerException.InnerException; } while (innerException != …
92 c#  c#-4.0 

8
ไม่สามารถใช้ String.Empty เป็นค่าเริ่มต้นสำหรับพารามิเตอร์ที่เป็นทางเลือก
ฉันกำลังอ่านC # ที่มีประสิทธิภาพโดย Bill Wagner ในรายการ 14 - ลดลอจิกการเริ่มต้นที่ซ้ำกันเขาแสดงตัวอย่างต่อไปนี้ของการใช้คุณสมบัติพารามิเตอร์ทางเลือกใหม่ในตัวสร้าง: public MyClass(int initialCount = 0, string name = "") สังเกตว่าเขาใช้""แทนstring.Empty. เขาแสดงความคิดเห็น: คุณจะสังเกตเห็น [ในตัวอย่างด้านบน] ว่าตัวสร้างที่สองระบุ "" สำหรับค่าเริ่มต้นของพารามิเตอร์nameแทนที่จะเป็นแบบธรรมเนียมstring.Emptyพารามิเตอร์มากกว่าจารีตประเพณีมากขึ้นนั่นเป็นเพราะstring.Emptyไม่ใช่ค่าคงที่เวลาคอมไพล์ เป็นคุณสมบัติคงที่ที่กำหนดไว้ในคลาสสตริง เนื่องจากไม่ใช่ค่าคงที่ในการคอมไพล์คุณจึงไม่สามารถใช้เป็นค่าเริ่มต้นสำหรับพารามิเตอร์ได้ หากเราไม่สามารถใช้ไฟล์ string.Emptyแตติกได้ในทุกสถานการณ์นั่นจะไม่ทำให้จุดประสงค์ของมันเสียไปหรือ? ฉันคิดว่าเราจะใช้มันเพื่อให้แน่ใจว่าเรามีวิธีการอ้างถึงสตริงว่างโดยไม่ขึ้นกับระบบ ความเข้าใจของฉันผิดหรือเปล่า? ขอบคุณ. อัปเดต เพียงติดตามความคิดเห็น ตาม MSDN: พารามิเตอร์ทางเลือกแต่ละตัวมีค่าดีฟอลต์เป็นส่วนหนึ่งของนิยาม หากไม่มีการส่งอาร์กิวเมนต์สำหรับพารามิเตอร์นั้นจะใช้ค่าเริ่มต้น ค่าเริ่มต้นต้องเป็นค่าคงที่ จากนั้นเราจะไม่สามารถใช้System.Environment.NewLineอย่างใดอย่างหนึ่งหรือใช้อ็อบเจ็กต์ที่สร้างอินสแตนซ์ใหม่เป็นค่าเริ่มต้น ฉันยังไม่ได้ใช้ VS2010 และมันก็น่าผิดหวัง!

8
C # 'ไดนามิก' ไม่สามารถเข้าถึงคุณสมบัติจากชนิดที่ไม่ระบุชื่อที่ประกาศในแอสเซมบลีอื่น
โค้ดด้านล่างนี้ทำงานได้ดีตราบใดที่ฉันได้เรียนในการชุมนุมเช่นเดียวกับระดับClassSameAssembly Programแต่เมื่อฉันย้ายชั้นเรียนClassSameAssemblyไปยังชุดประกอบแยกต่างหากRuntimeBinderException(ดูด้านล่าง) จะถูกโยนทิ้ง สามารถแก้ไขได้หรือไม่? using System; namespace ConsoleApplication2 { public static class ClassSameAssembly { public static dynamic GetValues() { return new { Name = "Michael", Age = 20 }; } } internal class Program { private static void Main(string[] args) { var d = ClassSameAssembly.GetValues(); Console.WriteLine("{0} is {1} years old", …

5
งานถูกสร้างเป็นเธรดพื้นหลังหรือไม่
ฉันแค่สงสัยว่าคลาส Task ใหม่ใน dot.net 4 กำลังสร้างพื้นหลังหรือเธรดเบื้องหน้า? โดยปกติฉันจะตั้งค่า "IsBackground" บนเธรด แต่ไม่มีแอตทริบิวต์ดังกล่าวในงาน ฉันไม่พบเอกสารใด ๆ เกี่ยวกับเรื่องนี้ใน MSDN :-(
86 c#-4.0 

4
System.Runtime.Caching.MemoryCache กับ HttpRuntime.Cache - มีความแตกต่างหรือไม่?
ฉันสงสัยว่ามีความแตกต่างระหว่างMemoryCacheและHttpRuntime.Cacheข้อใดเป็นที่ต้องการในโครงการ ASP.NET MVC เท่าที่ฉันเข้าใจทั้งสองอย่างปลอดภัยเธรด API ตั้งแต่แรกเห็นเหมือนกันมากหรือน้อยกว่ากันดังนั้นเวลาที่จะใช้มีความแตกต่างกันอย่างไร

4
ข้อ จำกัด เกี่ยวกับการขัดแย้งกับ PathRelativePathTo ในสภาพแวดล้อม“ รู้เส้นทางที่ยาวนาน”
สำหรับเส้นทางการตระหนักถึงกระบวนการใน Windows 10, ฉันพยายามที่จะเข้าใจในสิ่งที่ข้อ จำกัด ข้อโต้แย้งที่มีเมื่อใช้หน้าต่างเปลือกวิธีPathRelativePathTo ในตัวอย่างด้านล่างฉันใช้ C # ผ่าน pinvoke เพื่อโทรหาวิธี ฉันได้รับหลายตัวอย่างด้านล่างและผลลัพธ์ของพวกเขา บันทึก: ตัวอย่างทั้งหมดให้เส้นทางไดเรกทอรีสำหรับ "จาก" และเส้นทางไฟล์สำหรับ "ถึง" (ไม่มีเส้นทางเหล่านี้จริง ๆ บนดิสก์) ข้อสังเกตของฉันคือ เส้นทางภายใต้ความยาว MAX_PATH "สั้น" (260) กลับมาประสบความสำเร็จพร้อมผลลัพธ์ที่คาดหวัง บางเส้นทางเหนือ MAX_PATH แบบ "สั้น" จะกลับมาประสบความสำเร็จพร้อมกับผลลัพธ์ที่ถูกต้อง บางเส้นทางเหนือ MAX_PATH แบบ "สั้น" กลับมาประสบความสำเร็จพร้อมคำตอบที่ผิด (yikes!) เส้นทางที่ยาวกว่าบางอันส่งคืนข้อผิดพลาด อย่างไรก็ตามมันไม่ได้อยู่ที่ความยาวสูงสุดคงที่ ที่มา: class Program { static class Native { // https://www.pinvoke.net/default.aspx/shlwapi.pathrelativepathto …
12 c#  .net  windows  c#-4.0  c#-3.0 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.