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

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

7
ค่าเริ่มต้นสำหรับ KeyValuePair
ฉันมีประเภทวัตถุที่IEnumerable<KeyValuePair<T,U>> keyValueListฉันใช้อยู่ var getResult= keyValueList.SingleOrDefault(); if(getResult==/*default */) { } else { } ฉันจะตรวจสอบว่าgetResultเป็นค่าเริ่มต้นได้หรือไม่ในกรณีที่ฉันไม่พบองค์ประกอบที่ถูกต้อง ฉันไม่สามารถตรวจสอบว่ามันเป็นnullหรือไม่เพราะKeyValuePairเป็นโครงสร้าง
392 c#  key-value 


11
วิธีที่ดีที่สุดในการอ่านไฟล์ขนาดใหญ่ลงในอาร์เรย์ไบต์ใน C #?
ฉันมีเว็บเซิร์ฟเวอร์ที่จะอ่านไฟล์ไบนารีขนาดใหญ่ (หลายเมกะไบต์) ลงในอาร์เรย์ไบต์ เซิร์ฟเวอร์อาจอ่านไฟล์หลายไฟล์ในเวลาเดียวกัน (คำขอหน้าเว็บที่แตกต่างกัน) ดังนั้นฉันกำลังมองหาวิธีที่เหมาะสมที่สุดในการทำเช่นนี้โดยไม่ต้องเสียภาษี CPU มากเกินไป รหัสด้านล่างดีพอหรือไม่ public byte[] FileToByteArray(string fileName) { byte[] buff = null; FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); long numBytes = new FileInfo(fileName).Length; buff = br.ReadBytes((int) numBytes); return buff; }

15
Enum“ มรดก”
ฉันมี enum ในเนมสเปซระดับต่ำ ฉันต้องการให้คลาสหรือ enum ในเนมสเปซระดับกลางที่ "สืบทอด" enum ระดับต่ำ namespace low { public enum base { x, y, z } } namespace mid { public enum consume : low.base { } } ฉันหวังว่าสิ่งนี้จะเป็นไปได้หรือบางทีคลาสบางประเภทที่สามารถใช้แทน enum ที่จะให้สิ่งที่เป็นนามธรรมสำหรับ enum แต่ยังให้อินสแตนซ์ของคลาสนั้นเข้าถึง enum ได้ คิด? แก้ไข: หนึ่งในเหตุผลที่ฉันไม่ได้เพียงแค่เปลี่ยนสิ่งนี้เป็น const ในคลาสก็คือต้องการบริการ enum ระดับต่ำที่ฉันต้องใช้ ฉันได้รับ WSDLs และ XSD …
391 c#  .net  enums 

3
ส่งคืนค่าที่ส่งผ่านไปยังเมธอด
ฉันมีวิธีการบนอินเตอร์เฟส: string DoSomething(string whatever); ฉันต้องการเยาะเย้ยนี้ด้วยขั้นต่ำเพื่อให้มันส่งคืนสิ่งที่ผ่านไป - สิ่งที่ต้องการ: _mock.Setup( theObject => theObject.DoSomething( It.IsAny<string>( ) ) ) .Returns( [the parameter that was passed] ) ; ความคิดใด ๆ
390 c#  mocking  moq 

20
ทำไมไม่มีวิธีการขยาย ForEach ใน IEnumerable?
แรงบันดาลใจจากคำถามอื่นที่ถามเกี่ยวกับZipฟังก์ชั่นที่หายไป: เหตุใดจึงไม่มีForEachวิธีการขยายในEnumerableชั้นเรียน หรือที่ไหนก็ได้? ชั้นเดียวที่ได้รับวิธีการคือForEach List<>มีเหตุผลว่าทำไมมันหายไป (การแสดง)?

14
ไม่สามารถสร้างเอนทิตีได้ในการสืบค้น LINQ to Entities
มีชนิดเอนทิตีที่เรียกว่าผลิตภัณฑ์ที่สร้างขึ้นโดยกรอบงานเอนทิตี ฉันเขียนแบบสอบถามนี้ public IQueryable<Product> GetProducts(int categoryID) { return from p in db.Products where p.CategoryID== categoryID select new Product { Name = p.Name}; } รหัสด้านล่างพ่นข้อผิดพลาดต่อไปนี้: "เอนทิตีหรือร้านค้าประเภทที่ซับซ้อนไม่สามารถสร้างสินค้าในแบบสอบถาม LINQ ไปยังเอนทิตี" var products = productRepository.GetProducts(1).Tolist(); แต่เมื่อฉันใช้select pแทนselect new Product { Name = p.Name};มันทำงานได้อย่างถูกต้อง ฉันจะ preform ส่วนเลือกที่กำหนดเองได้อย่างไร

9
C # รับเส้นทางของ% AppData%
C # 2008 SP1 ฉันกำลังใช้รหัสด้านล่าง: dt.ReadXml("%AppData%\\DateLinks.xml"); อย่างไรก็ตามฉันได้รับการยกเว้นที่ชี้ไปยังตำแหน่งที่แอปพลิเคชันของฉันทำงานอยู่: ไม่พบส่วนหนึ่งของพา ธ 'D: \ Projects \ SubVersionProjects \ CatDialer \ bin \ Debug \% AppData% \ DateLinks.xml' ฉันคิดว่า%AppData%ควรหาเส้นทางญาติ เมื่อฉันไปStart|Run|%AppData%windows explorer พาฉันไปที่ไดเรกทอรีนั้น ฉันไม่สามารถใส่เส้นทางแบบเต็มได้เนื่องจากผู้ใช้แต่ละเครื่องมีความแตกต่างกัน
387 c#  .net  path 

20
ฉันสามารถหาค่าส่งคืนก่อนที่จะส่งคืนในขณะที่ดีบักใน Visual Studio ได้หรือไม่
ใช้ฟังก์ชั่นต่อไปนี้: DataTable go() { return someTableAdapter.getSomeData(); } เมื่อฉันตั้งเบรกพอยต์ในฟังก์ชั่นนี้มีความเป็นไปได้ที่จะตรวจสอบค่าที่ส่งคืนหรือไม่? go()เชื่อมต่อโดยตรงกับดาต้ากริดใน.aspxหน้า วิธีเดียวที่จะตรวจสอบ DataTable ที่ส่งคืนคือการใช้ตัวแปรชั่วคราว อย่างไรก็ตามมันไม่สะดวกนัก ไม่มีทางอื่นอีกแล้วเหรอ?

15
รอแบบอะซิงโครนัสสำหรับงาน <T> เพื่อให้หมดเวลา
ฉันต้องการรอให้ภารกิจ &lt;T&gt;เสร็จสมบูรณ์ด้วยกฎพิเศษบางอย่าง: หากยังไม่เสร็จหลังจาก X มิลลิวินาทีฉันต้องการแสดงข้อความถึงผู้ใช้ และถ้ามันยังไม่เสร็จสมบูรณ์หลังจาก Y มิลลิวินาทีผมต้องการที่จะทำงานโดยอัตโนมัติยกเลิกคำขอ ฉันสามารถใช้Task.ContinueWithเพื่อรอแบบอะซิงโครนัสเพื่อให้งานเสร็จสมบูรณ์ (เช่นกำหนดเวลาการดำเนินการที่จะดำเนินการเมื่องานเสร็จสมบูรณ์) แต่ไม่อนุญาตให้ระบุการหมดเวลา ฉันสามารถใช้Task.Waitเพื่อรองานให้เสร็จสมบูรณ์พร้อมกับการหมดเวลา แต่จะบล็อกเธรดของฉัน ฉันจะรอแบบอะซิงโครนัสเพื่อให้งานเสร็จสมบูรณ์ด้วยการหมดเวลาได้อย่างไร

19
วิธีรับที่อยู่ IP ของลูกค้าของผู้ใช้ใน ASP.NET?
เราต้องRequest.UserHostAddressได้รับที่อยู่ IP ใน ASP.NET แต่โดยปกติจะเป็นที่อยู่ IP ของ ISP ของผู้ใช้ไม่ใช่ที่อยู่ IP ของเครื่องของผู้ใช้ที่คลิกลิงค์ ฉันจะรับที่อยู่ IP จริงได้อย่างไร ตัวอย่างเช่นในโปรไฟล์ผู้ใช้ Stack Overflow คือ: "กิจกรรมบัญชีล่าสุด: 4 ชั่วโมงที่ผ่านมาจาก 86.123.127.8"แต่ที่อยู่ IP ของเครื่องของฉันแตกต่างกันเล็กน้อย Stack Overflow รับที่อยู่นี้ได้อย่างไร ในบางระบบเว็บจะมีการตรวจสอบที่อยู่ IP เพื่อวัตถุประสงค์บางอย่าง ตัวอย่างเช่นด้วยที่อยู่ IP ที่แน่นอนผู้ใช้สามารถมีเพียง 5 คลิกที่ลิงค์ดาวน์โหลดทุก ๆ 24 ชั่วโมงหรือไม่ ที่อยู่ IP นี้ควรไม่ซ้ำกันไม่ใช่สำหรับ ISP ที่มีลูกค้าหรือผู้ใช้อินเทอร์เน็ตจำนวนมาก ฉันเข้าใจดีหรือไม่
387 c#  asp.net  client  ip-address 

12
กรอบการฉีด. NET Dependency ใดที่ควรพิจารณา [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม &amp; คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา C # /. NET Dependency Injection Framework ใดที่ควรพิจารณา? และสิ่งที่คุณสามารถพูดเกี่ยวกับความซับซ้อนและความเร็วของพวกเขา

18
แคสติ้ง vs การใช้คำว่า 'as' ใน CLR
เมื่อมีการตั้งโปรแกรมอินเทอร์เฟซฉันพบว่าฉันทำการแปลงหรือแปลงวัตถุเป็นจำนวนมาก การแปลงสองวิธีนี้มีความแตกต่างกันหรือไม่? ถ้าเป็นเช่นนั้นจะมีความแตกต่างของค่าใช้จ่ายหรือสิ่งนี้มีผลต่อโปรแกรมของฉันอย่างไร public interface IMyInterface { void AMethod(); } public class MyClass : IMyInterface { public void AMethod() { //Do work } // Other helper methods.... } public class Implementation { IMyInterface _MyObj; MyClass _myCls1; MyClass _myCls2; public Implementation() { _MyObj = new MyClass(); // What is the difference …
386 c#  casting  clr 

10
ประเภทที่กำหนดไว้ล่วงหน้า 'System.ValueTuple´2´ ไม่ได้ถูกกำหนดหรือนำเข้า
ฉันได้ติดตั้ง Visual Studio 15 Preview 3 แล้วและพยายามใช้คุณสมบัติ tuple ใหม่ static void Main(string[] args) { var x = DoSomething(); Console.WriteLine(x.x); } static (int x, int y) DoSomething() { return (1, 2); } เมื่อฉันรวบรวมฉันได้รับข้อผิดพลาด: ประเภทที่กำหนดไว้ล่วงหน้า 'System.ValueTuple´2´ ไม่ได้ถูกกำหนดหรือนำเข้า ตามการโพสต์บล็อกคุณสมบัตินี้ควรเป็น "เปิด" โดยค่าเริ่มต้น ฉันทำอะไรผิด?

7
ซอมบี้มีอยู่จริงหรือไม่…ใน. NET?
ฉันมีการพูดคุยกับเพื่อนร่วมทีมเกี่ยวกับการล็อคใน. NET เขาเป็นคนที่สดใสจริงๆมีภูมิหลังที่กว้างขวางทั้งในระดับล่างและระดับสูงกว่าการเขียนโปรแกรม แต่ประสบการณ์ของเขาในการเขียนโปรแกรมระดับล่างต่ำกว่าของฉัน อย่างไรก็ตามเขาแย้งว่าการล็อค. NET ควรหลีกเลี่ยงในระบบที่มีความสำคัญซึ่งคาดว่าจะอยู่ภายใต้ภาระหนักหากเป็นไปได้ทั้งหมดเพื่อหลีกเลี่ยงความเป็นไปได้เล็กน้อยของ "zombie thread" ที่ล้มเหลวของระบบ ฉันใช้การล็อคเป็นประจำและฉันไม่รู้ว่า "zombie thread" คืออะไรฉันจึงถาม ความประทับใจที่ฉันได้รับจากคำอธิบายของเขาก็คือว่าซอมบี้เป็นเธรดที่ถูกยกเลิก แต่ก็ยังมีทรัพยากรบางอย่างอยู่ ตัวอย่างที่เขายกให้วิธีที่เธรด zombie สามารถทำให้ระบบแตกได้เธรดจะเริ่มโพรซีเดอร์หลังจากล็อกวัตถุบางตัว จากนั้นจะถึงจุดสิ้นสุดก่อนที่จะสามารถปลดล็อคได้ สถานการณ์นี้มีโอกาสที่จะเกิดความผิดพลาดของระบบเพราะในที่สุดความพยายามที่จะดำเนินการวิธีการจะส่งผลให้เธรดทั้งหมดกำลังรอการเข้าถึงวัตถุที่จะไม่ถูกส่งคืนเนื่องจากเธรดที่ใช้วัตถุที่ถูกล็อคจะตาย ฉันคิดว่าฉันได้รับส่วนสำคัญนี้ แต่ถ้าฉันไม่อยู่โปรดแจ้งให้เราทราบ แนวคิดนี้สมเหตุสมผลสำหรับฉัน ฉันไม่มั่นใจอย่างสมบูรณ์ว่านี่เป็นสถานการณ์จริงที่อาจเกิดขึ้นใน. NET ฉันไม่เคยได้ยินชื่อ "ซอมบี้" มาก่อน แต่ฉันจำได้ดีว่าโปรแกรมเมอร์ที่ทำงานในระดับลึกลงไปมีแนวโน้มที่จะมีความเข้าใจพื้นฐานการใช้คอมพิวเตอร์ (เช่นการทำเกลียว) ฉันเห็นคุณค่าในการล็อคแน่นอนและฉันได้เห็นโปรแกรมเมอร์ระดับโลกหลายคนใช้ประโยชน์จากการล็อค ฉันยังมีความสามารถ จำกัด ในการประเมินสิ่งนี้ด้วยตัวเองเพราะฉันรู้ว่าlock(obj)คำแถลงนั้นเป็นเพียงแค่ประโยคน้ำตาลสำหรับ: bool lockWasTaken = false; var temp = obj; try { Monitor.Enter(temp, ref lockWasTaken); { body …

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