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

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


2
รายการ <T> กับ BindingList <T> ข้อดี / ข้อไม่ได้เปรียบ
ใครสามารถอธิบายความแตกต่างระหว่างทั้งสองสำหรับโครงการของฉัน ตอนนี้ฉันมีList&lt;MyClass&gt;และตั้งค่า BindingSource เป็นที่และ DataGridView เป็น BindingSource ฉันได้นำไปใช้IEditableObjectแล้วเมื่อเรียกว่า CancelEdit ฉันจะเปลี่ยนวัตถุของฉันกลับไปเป็นไฟล์Memberwise.Clone() การเปลี่ยนรายการของฉันเป็น BindingList จะช่วยแก้ปัญหานี้ได้หรือไม่และข้อดีของการใช้ BindingList คืออะไร?

10
จับคอนโซลทางออก C #
ฉันมีแอปพลิเคชันคอนโซลที่มีเธรดค่อนข้างมาก มีเธรดที่ตรวจสอบเงื่อนไขบางอย่างและยุติโปรแกรมหากเป็นจริง การยุตินี้สามารถเกิดขึ้นได้ทุกเมื่อ ฉันต้องการเหตุการณ์ที่สามารถทริกเกอร์ได้เมื่อโปรแกรมกำลังปิดเพื่อที่ฉันจะได้ล้างเธรดอื่น ๆ ทั้งหมดและปิดการจัดการไฟล์และการเชื่อมต่อทั้งหมดอย่างถูกต้อง ฉันไม่แน่ใจว่ามีเฟรมเวิร์กใน. NET อยู่แล้วหรือไม่ดังนั้นฉันจึงถามก่อนที่จะเขียนของตัวเอง ฉันสงสัยว่ามีเหตุการณ์ตามบรรทัดของ: MyConsoleProgram.OnExit += CleanupBeforeExit;
93 c#  .net  events  console  exit 

4
“ Audit Logout” ใน SQL Server Profiler คืออะไร?
ฉันใช้การนำเข้าข้อมูล (โดยใช้ C # / Linq) และโดยปกติแล้วฉันพยายามเพิ่มประสิทธิภาพการสืบค้นของฉันให้มากที่สุด ด้วยเหตุนี้ฉันจึงเรียกใช้การติดตามบน DB โดยใช้ SQL Server Profiler โดยการติดตามของฉันถูกกรองด้วยชื่อล็อกอิน SQL ของฉัน (เป็นชื่อที่สามารถนำมาประกอบกับกระบวนการนำเข้าข้อมูลของฉันโดยไม่ซ้ำกัน) น่าแปลกที่คำสั่ง SQL ส่วนใหญ่ของฉันรวดเร็วมาก :) - มีแบบสอบถามน้อยมากที่ทำลายเครื่องหมาย 1ms แต่เว้นระยะห่างระหว่างคำค้นหาทั้งหมดของฉันมีหลายแถวโดยที่ EventClass คือ "การเข้าสู่ระบบการตรวจสอบ" หรือ "การออกจากระบบการตรวจสอบ" และระยะเวลาของ "การออกจากระบบการตรวจสอบ" อาจนานถึงหนึ่งนาที! สิ่งนี้เกี่ยวข้องกับการที่ฉันใช้ธุรกรรมในการนำเข้าหรือไม่ ถ้าเป็นเช่นนั้นมีวิธีใดบ้างในการค้นหาคำค้นหาที่มีคนจำนวนมากเพื่อที่ฉันจะได้ล้างข้อมูลเหล่านั้น

5
มีแนวทางที่สมเหตุสมผลสำหรับพารามิเตอร์ประเภท "เริ่มต้น" ใน C # Generics หรือไม่
ในเทมเพลต C ++ เราสามารถระบุว่าพารามิเตอร์บางประเภทเป็นค่าเริ่มต้น ยกเว้นที่ระบุไว้อย่างชัดเจนจะใช้ประเภท T. สามารถทำได้หรือประมาณใน C #? ฉันกำลังมองหาสิ่งที่ต้องการ: public class MyTemplate&lt;T1, T2=string&gt; {} ดังนั้นอินสแตนซ์ของประเภทที่ไม่ได้ระบุอย่างชัดเจนT2: MyTemplate&lt;int&gt; t = new MyTemplate&lt;int&gt;(); โดยพื้นฐานแล้วจะเป็น: MyTemplate&lt;int, string&gt; t = new MyTemplate&lt;int, string&gt;(); ในที่สุดฉันกำลังดูกรณีที่มีเทมเพลตที่ค่อนข้างใช้กันอย่างแพร่หลาย แต่ฉันกำลังพิจารณาขยายด้วยพารามิเตอร์ประเภทเพิ่มเติม ฉันสามารถคลาสย่อยได้ฉันเดา แต่ฉันอยากรู้ว่ามีตัวเลือกอื่นในหลอดเลือดดำนี้หรือไม่

8
ปุ่ม Escape เพื่อปิดฟอร์ม Windows Forms ใน C #
ฉันได้ลองทำสิ่งต่อไปนี้แล้ว: private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { if ((Keys) e.KeyValue == Keys.Escape) this.Close(); } แต่มันไม่ได้ผล จากนั้นฉันลองสิ่งนี้: protected override void OnKeyDown(KeyEventArgs e) { base.OnKeyDown(e); if (e.KeyCode == Keys.Escape) this.Close(); } และยังไม่มีอะไรทำงาน KeyPreview บนคุณสมบัติของฟอร์ม Windows Forms ของฉันถูกตั้งค่าเป็น true ... ฉันทำอะไรผิด?
93 c#  winforms 

7
ฉันจะกำจัดคำเตือนคอมไพเลอร์“ [บางเหตุการณ์] ไม่เคยใช้” ใน Visual Studio ได้อย่างไร
ตัวอย่างเช่นฉันได้รับคำเตือนของคอมไพเลอร์นี้ ไม่เคยใช้เหตุการณ์ 'Company.SomeControl.SearchClick' แต่ฉันรู้ว่ามันถูกใช้เพราะการแสดงความคิดเห็นมันทำให้ฉันเหมือน 20 คำเตือนใหม่ของหน้า XAML ที่พยายามใช้เหตุการณ์นี้! สิ่งที่ช่วยให้? มีเคล็ดลับในการกำจัดคำเตือนนี้หรือไม่?

10
การประกาศตัวแปรภายในหรือภายนอก foreach loop: ไหนเร็ว / ดีกว่ากัน?
อันไหนเร็ว / ดีกว่ากัน อันนี้: List&lt;User&gt; list = new List&lt;User&gt;(); User u; foreach (string s in l) { u = new User(); u.Name = s; list.Add(u); } หรืออันนี้: List&lt;User&gt; list = new List&lt;User&gt;(); foreach (string s in l) { User u = new User(); u.Name = s; list.Add(u); } ทักษะการพัฒนามือใหม่ของฉันบอกฉันว่าอันแรกดีกว่า แต่เพื่อนของฉันบอกฉันว่าฉันผิด …
93 c#  foreach 

5
วิธีตรวจสอบว่ามีคอลัมน์อยู่ใน datatable หรือไม่
ฉันมี datable ที่สร้างขึ้นด้วยเนื้อหาของไฟล์ csv ฉันใช้ข้อมูลอื่นเพื่อแมปคอลัมน์บางคอลัมน์ของ csv (ตอนนี้อยู่ใน datatable) กับข้อมูลที่ผู้ใช้ต้องกรอก ในโลกที่ดีที่สุดการทำแผนที่จะเป็นไปได้ แต่นี่ไม่ใช่ความจริง ... ดังนั้นก่อนที่ฉันจะพยายามแมปค่าคอลัมน์ที่สามารถระบุข้อมูลได้ฉันจะต้องตรวจสอบว่ามีคอลัมน์นั้นหรือไม่ หากฉันไม่ทำการตรวจสอบนี้แสดงว่าฉันมี ArgumentException แน่นอนฉันสามารถตรวจสอบสิ่งนี้ด้วยรหัสบางอย่างเช่นนี้: try { //try to map here. } catch (ArgumentException) { } แต่ตอนนี้ฉันมี 3 คอลัมน์ในการแมปและบางส่วนหรือทั้งหมดอาจมีอยู่ / ขาดหายไป มีวิธีที่ดีในการตรวจสอบว่ามีคอลัมน์อยู่ใน datatable หรือไม่?

9
วิงวอน (Delegate)
ใครก็ได้โปรดอธิบายข้อความนี้ที่เขียนไว้ในลิงค์นี้ Invoke(Delegate): ดำเนินการผู้รับมอบสิทธิ์ที่ระบุบนเธรดที่เป็นเจ้าของหมายเลขอ้างอิงหน้าต่างของตัวควบคุม ใครสามารถอธิบายความหมาย (โดยเฉพาะตัวหนา) ฉันไม่สามารถเข้าใจได้อย่างชัดเจน

15
การแบ่งแยกสหภาพแรงงานใน C #
[หมายเหตุ: คำถามนี้มีชื่อเดิมว่า " C (ish) style union ใน C # " แต่ตามที่ความคิดเห็นของ Jeff แจ้งให้ฉันทราบว่าโครงสร้างนี้เรียกว่า 'การรวมกลุ่มที่เลือกปฏิบัติ'] ขอโทษคำฟุ่มเฟือยของคำถามนี้ มีคำถามที่ทำให้เกิดเสียงคล้าย ๆ กันอยู่สองข้อใน SO แต่ดูเหมือนว่าพวกเขาจะมุ่งเน้นไปที่ประโยชน์ในการประหยัดหน่วยความจำของสหภาพหรือใช้เพื่อการทำงานร่วมกัน นี่คือตัวอย่างของคำถามดังกล่าว ความปรารถนาของฉันที่จะมีสิ่งที่เป็นสหภาพแตกต่างกันบ้าง ฉันกำลังเขียนโค้ดบางอย่างในขณะนี้ซึ่งสร้างวัตถุที่มีลักษณะเช่นนี้ public class ValueWrapper { public DateTime ValueCreationDate; // ... other meta data about the value public object ValueA; public object ValueB; } สิ่งที่ค่อนข้างซับซ้อนฉันคิดว่าคุณจะเห็นด้วย เป็นสิ่งที่ValueAสามารถเป็นของบางประเภทไม่กี่ (สมมติว่าstring, intและFoo(ซึ่งเป็นชั้นเรียน) …

19
วิธีแก้ COM Exception Class ไม่ได้ลงทะเบียน (ข้อยกเว้นจาก HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
เมื่อฉันพยายามสร้างอินสแตนซ์ของคลาส COM มันจะแสดงข้อยกเว้นเป็น ไม่ได้ลงทะเบียนคลาส (ข้อยกเว้นจาก HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)) โปรดแนะนำว่าฉันจะแก้ปัญหาได้อย่างไร
93 c#  vb.net 

4
ไดนามิกไม่มีคำจำกัดความสำหรับคุณสมบัติจากการอ้างอิงโครงการ
ฉันได้รับข้อผิดพลาดที่แจ้งว่า: 'object' ไม่มีคำจำกัดความสำหรับ 'Title' โค้ดทั้งหมดยังอยู่ในgithub ฉันมี ConsoleApplication1 ที่มีลักษณะเช่นนี้ namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Movie m = new Movie(); var o = new { Title = "Ghostbusters", Rating = "PG" }; Console.WriteLine(m.PrintMovie(o)); } } } และMovie.cs public class Movie : DynamicObject { public string PrintMovie(dynamic …

2
มีทางเลือก C # สำหรับพารามิเตอร์ vararg ของ Java หรือไม่?
ฉันทำงานบน Java และยังใหม่กับเทคโนโลยี. Net เป็นไปได้หรือไม่ที่จะประกาศฟังก์ชันใน C # ซึ่งรับพารามิเตอร์อินพุตตัวแปร มีไวยากรณ์ C # คล้ายกับไวยากรณ์ Java ต่อไปนี้หรือไม่? void f1(String... a)
93 c# 

7
เป็นวิธีที่ดีในการโทรกลับภายในโดยใช้คำสั่ง {} หรือไม่
Наэтотвопросестьответына กองมากเกินнарусском : Можнолиделатьвозвратизблокаใช้ () {}? ฉันแค่อยากรู้ว่าวิธีการโทรreturnภายในusingบล็อกนั้นปลอดภัย / ดีไหม สำหรับอดีต using(var scope = new TransactionScope()) { // my core logic return true; // if condition met else return false; scope.Complete(); } เรารู้ว่าในวงเล็บปีกกาสุดท้าย dispose()จะถูกเรียกออก แต่จะเกิดอะไรขึ้นในกรณีข้างต้นเนื่องจากreturnข้ามการควบคุมออกจากขอบเขตที่กำหนด (AFAIK) ... ฉันscope.Complete()ถูกเรียก? และสำหรับdispose()วิธีการของขอบเขต
93 c#  return  using 

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