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

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

9
รูปแบบการล็อกสำหรับการใช้. NET MemoryCache อย่างเหมาะสม
ฉันถือว่ารหัสนี้มีปัญหาการเกิดพร้อมกัน: const string CacheKey = "CacheKey"; static string GetCachedData() { string expensiveString =null; if (MemoryCache.Default.Contains(CacheKey)) { expensiveString = MemoryCache.Default[CacheKey] as string; } else { CacheItemPolicy cip = new CacheItemPolicy() { AbsoluteExpiration = new DateTimeOffset(DateTime.Now.AddMinutes(20)) }; expensiveString = SomeHeavyAndExpensiveCalculation(); MemoryCache.Default.Set(CacheKey, expensiveString, cip); } return expensiveString; } สาเหตุของปัญหาการเกิดพร้อมกันคือหลายเธรดสามารถรับคีย์ว่างจากนั้นพยายามแทรกข้อมูลลงในแคช วิธีใดเป็นวิธีที่สั้นและสะอาดที่สุดในการพิสูจน์รหัสพร้อมกันนี้ ฉันชอบทำตามรูปแบบที่ดีในโค้ดที่เกี่ยวข้องกับแคชของฉัน ลิงก์ไปยังบทความออนไลน์จะช่วยได้มาก UPDATE: …

9
C # จับข้อยกเว้นสแตกล้น
ฉันมีการเรียกแบบเรียกซ้ำไปยังเมธอดที่ทำให้เกิดข้อยกเว้นสแต็กโอเวอร์โฟลว์ การโทรครั้งแรกล้อมรอบด้วยบล็อก try catch แต่ไม่พบข้อยกเว้น ข้อยกเว้นของสแตกล้นทำงานในลักษณะพิเศษหรือไม่? ฉันสามารถจับ / จัดการข้อยกเว้นได้อย่างเหมาะสมหรือไม่? ไม่แน่ใจว่าเกี่ยวข้องหรือไม่ แต่ข้อมูลเพิ่มเติม: ไม่มีข้อยกเว้นในเธรดหลัก วัตถุที่รหัสกำลังส่งข้อยกเว้นจะถูกโหลดด้วยตนเองโดย Assembly.LoadFrom (... ) CreateInstance (... )

4
global คืออะไร ::?
ใน C # ฉันเห็นว่าglobal::ใช้บ่อยในรหัสที่สร้างขึ้นโดยอัตโนมัติ ไม่ใช่ของที่เคยใช้เองเลยไม่รู้ว่าจุดประสงค์คืออะไร ใครช่วยอธิบายเรื่องนี้ได้ไหม?
116 c# 

8
การเริ่มต้น IEnumerable <string> ใน C #
ฉันมีวัตถุนี้: IEnumerable&lt;string&gt; m_oEnum = null; และฉันต้องการเริ่มต้น พยายามด้วย IEnumerable&lt;string&gt; m_oEnum = new IEnumerable&lt;string&gt;() { "1", "2", "3"}; แต่มันขึ้นว่า "IEnumerable ไม่มีเมธอดในการเพิ่มสตริงคิดยังไงก็ได้ขอบคุณ
116 c#  .net 

3
ฉันจะใช้ WebRequest เพื่อเข้าถึงไซต์ที่เข้ารหัส SSL โดยใช้ https ได้อย่างไร
ฉันกำลังเขียนโปรแกรมที่อ่านเนื้อหาจาก URL ที่ผู้ใช้ให้มา ปัญหาของฉันอยู่ในรหัสที่มีลักษณะดังนี้: Uri uri = new Uri(url); WebRequest webRequest = WebRequest.Create(uri); WebResponse webResponse = webRequest.GetResponse(); ReadFrom(webResponse.GetResponseStream()); และนี่เป็นการทำลายหากurl ที่ระบุเป็นURL "https: //" ใครช่วยฉันเปลี่ยนรหัสนี้เพื่อให้ทำงานกับเนื้อหาที่เข้ารหัส SSL ได้ ขอบคุณ
116 c#  webrequest 

14
สร้าง Enum โดยอัตโนมัติตามค่าในตารางการค้นหาฐานข้อมูลหรือไม่
ฉันจะสร้าง enum โดยอัตโนมัติแล้วใช้ค่าใน C # ตามค่าในตารางการค้นหาฐานข้อมูลได้อย่างไร (โดยใช้ชั้นข้อมูลไลบรารีขององค์กร) ตัวอย่างเช่นถ้าฉันเพิ่มค่าการค้นหาใหม่ในฐานข้อมูลฉันไม่ต้องการที่จะต้องเพิ่มการประกาศค่า enum แบบคงที่พิเศษในโค้ดด้วยตนเอง - ฉันต้องการให้ enum ซิงค์กับฐานข้อมูล มีแบบนี้ด้วยเหรอ? ฉันไม่ต้องการสร้างโค้ดที่สร้างแบบคงที่ enum (ตามบทความThe Code Project Enum Code Generator - การสร้างโค้ด enum โดยอัตโนมัติจากตารางค้นหาฐานข้อมูล ) และต้องการให้เป็นแบบอัตโนมัติโดยสมบูรณ์
116 c#  database  dynamic  enums 

7
เรียกใช้เมธอดทุกๆ x นาที
ฉันต้องการโทรหาวิธีการบางอย่างทุกๆ 5 นาที ฉันจะทำเช่นนี้ได้อย่างไร? public class Program { static void Main(string[] args) { Console.WriteLine("*** calling MyMethod *** "); Console.ReadLine(); } private MyMethod() { Console.WriteLine("*** Method is executed at {0} ***", DateTime.Now); Console.ReadLine(); } }
116 c# 

4
ICollection <T> Vs List <T> ใน Entity Framework
ฉันดูเว็บคาสต์เพียงไม่กี่รายการก่อนที่จะเริ่มออกแบบแอปพลิเคชัน Entity Framework สองสามรายการก่อน ฉันไม่ได้อ่านเอกสารมากขนาดนั้นจริงๆและฉันรู้สึกว่าตอนนี้ฉันกำลังทุกข์ใจ ฉันใช้List&lt;T&gt;ในชั้นเรียนของฉันและได้ผลดีมาก ICollection&lt;T&gt;ตอนนี้ผมต้องอ่านเอกสารบางและมันระบุว่าฉันควรจะได้รับการใช้ ฉันเปลี่ยนเป็นสิ่งนี้และมันไม่ได้ทำให้บริบทของโมเดลเปลี่ยนไปด้วยซ้ำ นี่เป็นเพราะทั้งสองอย่างList&lt;T&gt;และICollection&lt;T&gt;สืบทอดIEnumerable&lt;T&gt;และนั่นคือสิ่งที่จำเป็นสำหรับ EF จริงหรือ? แต่ถ้าเป็นกรณีนี้ทำไมไม่รัฐเอกสาร EF ว่ามันต้องIEnumerable&lt;T&gt;แทนICollection&lt;T&gt;? ไม่ว่าในกรณีใดมีข้อเสียของสิ่งที่ฉันทำหรือฉันควรเปลี่ยนแปลงหรือไม่?

8
การแปลง List <int> เป็นสตริงที่คั่นด้วยลูกน้ำ
มีวิธีรับ List และแปลงเป็นสตริงที่คั่นด้วยลูกน้ำหรือไม่? ฉันรู้ว่าฉันสามารถวนซ้ำและสร้างมันได้ แต่ฉันคิดว่าพวกคุณบางคนมีวิธีที่เจ๋งกว่านี้ไหม? ฉันต้องการเรียนรู้ 'เทคนิค' ประเภทนี้จริงๆดังนั้นโปรดอธิบายหรือเชื่อมโยงไปยังเอกสารเกี่ยวกับวิธีการที่คุณใช้
116 c#  collections 

5
วิธีการแก้ไข Instance Inside ConfigureServices ใน ASP.NET Core
เป็นไปได้ไหมที่จะแก้ไขอินสแตนซ์IOptions&lt;AppSettings&gt;จากConfigureServicesเมธอดใน Startup? โดยปกติคุณสามารถใช้IServiceProviderเพื่อเริ่มต้นอินสแตนซ์ แต่คุณไม่มีในขั้นตอนนี้เมื่อคุณลงทะเบียนบริการ public void ConfigureServices(IServiceCollection services) { services.Configure&lt;AppSettings&gt;( configuration.GetConfigurationSection(nameof(AppSettings))); // How can I resolve IOptions&lt;AppSettings&gt; here? }

6
จะสร้างวัตถุ String จำนวนเท่าใดเมื่อใช้เครื่องหมายบวก
จะสร้างวัตถุสตริงจำนวนเท่าใดเมื่อใช้เครื่องหมายบวกในโค้ดด้านล่าง String result = "1" + "2" + "3" + "4"; ถ้าเป็นดังด้านล่างนี้ผมจะพูดว่า String object 3 ตัว: "1", "2", "12" String result = "1" + "2"; ฉันรู้ด้วยว่าอ็อบเจ็กต์ String ถูกแคชไว้ใน String Intern Pool / Table เพื่อการปรับปรุงประสิทธิภาพ แต่นั่นไม่ใช่คำถาม
115 c#  string  clr 

2
ปัญหาในการทำความเข้าใจความแตกต่างของความแปรปรวนร่วมกับยาชื่อสามัญใน C #
ฉันไม่เข้าใจว่าทำไมโค้ด C # ต่อไปนี้ไม่คอมไพล์ อย่างที่คุณเห็นฉันมีวิธีการทั่วไปแบบคงที่ Something ที่มีIEnumerable&lt;T&gt;พารามิเตอร์ (และTถูก จำกัด ให้เป็นIAอินเทอร์เฟซ) และพารามิเตอร์นี้ไม่สามารถแปลงเป็นIEnumerable&lt;IA&gt;ไฟล์. มีคำอธิบายอย่างไร? (ฉันไม่ได้ค้นหาวิธีแก้ปัญหาเพียงเพื่อทำความเข้าใจว่าเหตุใดจึงไม่ได้ผล) public interface IA { } public interface IB : IA { } public class CIA : IA { } public class CIAD : CIA { } public class CIB : IB { } public class CIBD : …

10
คำเตือนคอมไพเลอร์ที่กำหนดเอง
เมื่อใช้ ObsoleteAtribute ใน. Net จะให้คำเตือนคอมไพเลอร์ที่บอกคุณว่าอ็อบเจ็กต์ / วิธีการ / คุณสมบัติล้าสมัยและควรใช้อย่างอื่น ฉันกำลังทำโปรเจ็กต์ที่ต้องรีแฟคโค้ดอดีตพนักงานเป็นจำนวนมาก ฉันต้องการเขียนแอตทริบิวต์ที่กำหนดเองที่ฉันสามารถใช้เพื่อทำเครื่องหมายวิธีการหรือคุณสมบัติที่จะสร้างคำเตือนของคอมไพเลอร์ที่ให้ข้อความที่ฉันเขียน อะไรทำนองนี้ [MyAttribute("This code sux and should be looked at")] public void DoEverything() { } &lt;MyAttribute("This code sux and should be looked at")&gt; Public Sub DoEverything() End Sub ฉันต้องการให้สิ่งนี้สร้างคำเตือนคอมไพเลอร์ที่ระบุว่า "รหัสนี้ sux และควรได้รับการตรวจสอบ" ฉันรู้วิธีสร้างแอตทริบิวต์ที่กำหนดเองคำถามคือฉันจะทำให้มันสร้างคำเตือนคอมไพเลอร์ในสตูดิโอภาพได้อย่างไร

3
รหัสออกจากเธรดคืออะไร?
รหัสออกจากเธรดในหน้าต่างเอาต์พุตขณะทำการดีบักคืออะไร มันให้ข้อมูลอะไรกับฉัน? มันมีประโยชน์อย่างใดหรือเป็นเพียงสิ่งของภายในที่ไม่ควรรบกวนฉัน? The thread 0x552c has exited with code 259 (0x103). The thread 0x4440 has exited with code 0 (0x0). อาจมีรายการรหัสทางออกที่เป็นไปได้พร้อมกับความสำคัญหรือไม่?

17
เหตุใดการสืบทอดหลายรายการจึงไม่อนุญาตใน Java หรือ C #
ฉันรู้ว่าไม่อนุญาตให้มีการสืบทอดหลายรายการใน Java และ C # หนังสือหลายเล่มบอกว่าไม่อนุญาตให้มีการสืบทอดหลาย ๆ แต่สามารถใช้งานได้โดยใช้อินเทอร์เฟซ ไม่มีการพูดคุยเกี่ยวกับสาเหตุที่ไม่อนุญาต ใครช่วยบอกทีว่าทำไมถึงไม่อนุญาต?

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