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

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

10
ฉันจะเปลี่ยนชื่อคลาสใน C # โดยไม่ต้องเพิ่มบรรทัดของโค้ดให้กับทุกไฟล์ที่ใช้คลาสได้อย่างไร
ฉันต้องการสร้างนามแฝงสำหรับชื่อคลาส ไวยากรณ์ต่อไปนี้จะสมบูรณ์แบบ: public class LongClassNameOrOneThatContainsVersionsOrDomainSpecificName { ... } public class MyName = LongClassNameOrOneThatContainsVersionOrDomainSpecificName; แต่จะไม่รวบรวม ตัวอย่าง หมายเหตุตัวอย่างนี้จัดทำขึ้นเพื่อความสะดวกเท่านั้น อย่าพยายามแก้ปัญหานี้โดยแนะนำให้เปลี่ยนการออกแบบของระบบทั้งหมด การมีอยู่หรือขาดหายไปของตัวอย่างนี้ไม่ได้ทำให้คำถามเดิมเปลี่ยนไป รหัสที่มีอยู่บางส่วนขึ้นอยู่กับการมีอยู่ของคลาสคงที่: public static class ColorScheme { ... } โทนสีนี้เป็นโทนสีของ Outlook 2003 ฉันต้องการแนะนำโครงร่างสีของ Outlook 2007 ในขณะที่ยังคงรักษารูปแบบสีของ Outlook 2003 ไว้: public static class Outlook2003ColorScheme { ... } public static class Outlook2007ColorScheme { ... } …
88 c#  class-design 


4
เหตุใด Visual Studio จึงบอกฉันว่าไม่ได้กำหนดเมธอด AddJsonFile ()
ฉันกำลังพัฒนาโครงการ ASP.NET 5 WebAPI โดยใช้ VS Ultimate 2015 Preview ฉันกำลังพยายามกำหนดค่าแอปด้วยวิธีนี้ (หมายเลขบรรทัดเป็นเพียงคำแนะนำ): 1 using Microsoft.Framework.ConfigurationModel; 2 3 public IConfiguration Configuration { get; private set; } 4 5 public Startup() 6 { 7 Configuration = new Configuration() 8 .AddJsonFile("config.json") 9 .AddEnvironmentVariables(); 10 } บรรทัดที่ 8 ทำให้ฉันมีข้อผิดพลาด: 'Configuration' ไม่มีคำจำกัดความสำหรับ 'AddJsonFile' ... เกิดอะไรขึ้น?

7
Task.Run ด้วยพารามิเตอร์?
Threading.Tasksผมทำงานในโครงการเครือข่ายแบบมัลติทาสกิ้และฉันใหม่ ฉันใช้งานง่ายTask.Factory.StartNew()และฉันสงสัยว่าจะทำได้Task.Run()อย่างไร? นี่คือรหัสพื้นฐาน: Task.Factory.StartNew(new Action<object>( (x) => { // Do something with 'x' }), rawData); ฉันตรวจสอบSystem.Threading.Tasks.TaskในObject Browserแล้วไม่พบAction<T>พารามิเตอร์ like มีเพียงActionที่ใช้voidพารามิเตอร์และไม่มีประเภท มีเพียง 2 สิ่งที่คล้ายกัน: static Task Run(Action action)และstatic Task Run(Func<Task> function)แต่ไม่สามารถโพสต์พารามิเตอร์ด้วยทั้งสองอย่าง ใช่ฉันรู้ว่าฉันสามารถสร้างวิธีการขยายแบบง่าย ๆ ได้ แต่คำถามหลักของฉันคือเราสามารถเขียนเป็นบรรทัดเดียวด้วยTask.Run()?

17
ไม่พบแอสเซมบลีที่มีข้อผิดพลาด OwinStartupAttribute
ข้อผิดพลาดนี้ เกิดข้อผิดพลาดต่อไปนี้ขณะพยายามโหลดแอป - ไม่พบชุดประกอบที่มี OwinStartupAttribute - ไม่พบประเภทหรือวิธีการที่ระบุ 'เท็จ' ลองระบุ Assembly หากต้องการปิดใช้งานการค้นพบการเริ่มต้น OWIN ให้เพิ่ม appSetting owin: AutomaticAppStartup ด้วยค่า "เท็จ" ใน web.config ของคุณ ในการระบุ OWIN startup Assembly, Class หรือ Method ให้เพิ่ม appSetting owin: AppStartup ด้วยคลาสเริ่มต้นที่มีคุณสมบัติครบถ้วนหรือชื่อวิธีการกำหนดค่าใน web.config ของคุณ ปรากฏบนหน้าจอของฉันในหน้าแสดงข้อผิดพลาดที่น่าเกลียดที่สุดเท่าที่เคยมีมาในประวัติศาสตร์ ฉันได้พยายามทำตามคำแนะนำบนหน้าโดยการใส่ owin: AutomaticAppStartup ใน config <appSettings > <add key="owin:AppStartup" value="false"></add> </appSettings> สิ่งนี้ไม่สามารถแก้ไขปัญหาได้ ข้อเสนอแนะใด ๆ …

7
เราจะทราบได้อย่างไรว่าการอ้างอิงวัตถุที่ระบุได้ถูกกำจัดทิ้งไป?
มีวิธีการหรือวิธีอื่นที่มีน้ำหนักเบาในการตรวจสอบว่ามีการอ้างอิงถึงวัตถุที่กำจัดทิ้งหรือไม่? PS - นี่เป็นเพียงความอยากรู้อยากเห็น (หลับให้สบายไม่ใช่รหัสการผลิต) ใช่ฉันรู้ว่าฉันสามารถจับได้ObjectDisposedExceptionเมื่อพยายามเข้าถึงสมาชิกของวัตถุ
88 c#  .net  dispose  idisposable 

7
จะใช้อักขระ Escape กับการแก้ไขสตริงใน C # 6 ได้อย่างไร
ฉันใช้การแก้ไขสตริงและชอบมันมาก แต่ฉันมีปัญหาที่ฉันพยายามรวมแบ็กสแลชในผลลัพธ์ของฉัน แต่ไม่สามารถทำให้มันใช้งานได้ อยากได้อะไรแบบนี้ .. var domain = "mydomain"; var userName = "myUserName"; var combo = $"{domain}\{userName}" ฉันต้องการให้ผลลัพธ์ของคำสั่งผสมเป็น myDomain\myUserName สิ่งที่ฉันได้รับคือข้อผิดพลาดทางไวยากรณ์เกี่ยวกับ \ เป็นอักขระหลีก ถ้าฉันใส่ \\ ข้อผิดพลาด snytax จะหายไป แต่ผลลัพธ์คือ myDomain \\ myUsername ฉันจะรวมอักขระที่ใช้ Escape ไว้ในสตริงที่ถูกแก้ไขได้อย่างไร

6
ส่งคืนค่าสองค่า Tuple vs 'out' vs 'struct'
พิจารณาฟังก์ชันที่คืนค่าสองค่า เราสามารถเขียน: // Using out: string MyFunction(string input, out int count) // Using Tuple class: Tuple<string, int> MyFunction(string input) // Using struct: MyStruct MyFunction(string input) ข้อใดเป็นแนวทางปฏิบัติที่ดีที่สุดและเพราะเหตุใด
88 c#  struct  tuples  out  value-type 

18
การปิดกระบวนการสมัคร Excel ใน C # หลังการเข้าถึงข้อมูล
ฉันกำลังเขียนแอปพลิเคชันใน C # ที่เปิดไฟล์เทมเพลต Excel สำหรับการอ่าน / เขียน ฉันต้องการให้เมื่อผู้ใช้ปิดแอปพลิเคชันขั้นตอนการสมัคร excel ถูกปิดโดยไม่บันทึกไฟล์ excel ดูตัวจัดการงานของฉันหลังจากเรียกใช้แอพหลายครั้ง ฉันใช้รหัสนี้เพื่อเปิดไฟล์ excel: public Excel.Application excelApp = new Excel.Application(); public Excel.Workbook excelBook; excelBook = excelApp.Workbooks.Add(@"C:/pape.xltx"); และสำหรับการเข้าถึงข้อมูลฉันใช้รหัสนี้: Excel.Worksheet excelSheet = (Worksheet)(excelBook.Worksheets[1]); excelSheet.DisplayRightToLeft = true; Range rng; rng = excelSheet.get_Range("C2"); rng.Value2 = txtName.Text; ฉันเห็นคำถามที่คล้ายกันใน stackoverflow เช่นคำถามนี้และคำถามนี้และคำตอบทดสอบ แต่ไม่ได้ผล

8
คุณจะวินิจฉัยข้อผิดพลาด SEHException ได้อย่างไร - ส่วนประกอบภายนอกมีข้อยกเว้น
เมื่อใดก็ตามที่ผู้ใช้รายงานข้อผิดพลาดเช่น System.Runtime.InteropServices.SEHException - องค์ประกอบภายนอกมีข้อยกเว้นหรือไม่ มีอะไรที่ฉันในฐานะโปรแกรมเมอร์สามารถทำได้เพื่อหาสาเหตุ? สถานการณ์จำลอง: ผู้ใช้รายหนึ่ง (ใช้โปรแกรมที่ บริษัท ของฉันเขียน) ได้รายงานข้อผิดพลาดนี้ นี่อาจเป็นข้อผิดพลาดหรือไม่ก็ได้ พวกเขากล่าวว่าในเดือนที่แล้วคอมพิวเตอร์ 'หยุดทำงาน' สองครั้ง ฉันได้เรียนรู้จากประสบการณ์แล้วไม่ควรใช้คำอธิบายนี้มากเกินไปเพราะโดยปกติแล้วจะหมายความว่ามีคนที่เกี่ยวข้องกับคอมพิวเตอร์ไม่ทำงานตามที่คาดไว้ พวกเขาไม่สามารถให้รายละเอียดเพิ่มเติมกับฉันได้และฉันไม่พบข้อผิดพลาดใด ๆ ที่บันทึกไว้ ดังนั้นจึงอาจเป็นข้อผิดพลาดนี้หรือไม่ก็ได้ จาก stack-trace ข้อผิดพลาดที่เกิดขึ้นจริงคือเมื่อสร้างคลาสซึ่งไม่ได้เรียกรหัสการทำงานร่วมกันโดยตรง แต่อาจมีความซับซ้อนเนื่องจากวัตถุอาจเป็นส่วนหนึ่งของรายการที่เป็นฐานข้อมูลไปยัง DevExpress Grid ข้อผิดพลาดถูก 'จับ' โดยรูทีนข้อยกเว้นที่ไม่สามารถจัดการได้ซึ่งโดยปกติจะปิดโปรแกรม แต่มีตัวเลือกในการละเว้นและดำเนินการต่อ หากพวกเขาเลือกที่จะเพิกเฉยต่อข้อผิดพลาดโปรแกรมจะทำงานต่อไป แต่เกิดข้อผิดพลาดขึ้นอีกครั้งเมื่อรูทีนนี้ถูกเรียกใช้ครั้งต่อไป อย่างไรก็ตามมันไม่เกิดขึ้นอีกหลังจากปิดและรีสตาร์ทแอปพลิเคชันของเรา คอมพิวเตอร์ที่เป็นปัญหาดูเหมือนจะไม่ได้รับการเน้นย้ำ ใช้งาน Vista Business มีหน่วยความจำ 2GB และตามที่ Task Manager ใช้เพียงครึ่งเดียวกับแอปพลิเคชันของเราเพียงประมาณ 200Mb มีข้อมูลอีกชิ้นหนึ่งที่อาจเกี่ยวข้องหรือไม่เกี่ยวข้อง ส่วนอื่นของโปรแกรมเดียวกันใช้องค์ประกอบของบุคคลที่สามซึ่งเป็น dotnet wrapper ที่มีประสิทธิภาพรอบ ๆ …


8
เหตุใด ReadOnlyObservableCollection.CollectionChanged จึงไม่เป็นสาธารณะ
เหตุใดจึงReadOnlyObservableCollection.CollectionChangedได้รับการคุ้มครองและไม่เปิดเผยต่อสาธารณะ (ตามที่เกี่ยวข้องObservableCollection.CollectionChanged) การใช้คอลเลกชันจะใช้อะไรINotifyCollectionChangedหากฉันไม่สามารถเข้าถึงCollectionChangedเหตุการณ์ได้?
88 c#  .net  collections 

8
แทนที่องค์ประกอบสตริงหลายรายการใน C #
มีวิธีที่ดีกว่านี้ไหม ... MyString.Trim().Replace("&", "and").Replace(",", "").Replace(" ", " ") .Replace(" ", "-").Replace("'", "").Replace("/", "").ToLower(); ฉันได้ขยายคลาสสตริงเพื่อให้มันเหลือเพียงงานเดียว แต่มีวิธีที่เร็วกว่านี้ไหม public static class StringExtension { public static string clean(this string s) { return s.Replace("&", "and").Replace(",", "").Replace(" ", " ") .Replace(" ", "-").Replace("'", "").Replace(".", "") .Replace("eacute;", "é").ToLower(); } } เพียงเพื่อความสนุกสนาน (และเพื่อหยุดการโต้แย้งในความคิดเห็น) ฉันได้เพิ่มส่วนสำคัญในการเปรียบเทียบตัวอย่างต่างๆด้านล่าง https://gist.github.com/ChrisMcKee/5937656 ตัวเลือก regex ทำคะแนนได้แย่มาก …

3
วิธีสร้างอาร์กิวเมนต์สำหรับแบบสอบถาม Dapper แบบไดนามิก
ฉันมีพจนานุกรมค่าต่างๆเช่น "ชื่อ": "Alex" มีวิธีส่งต่อให้ Dapper เป็นอาร์กิวเมนต์สำหรับแบบสอบถามหรือไม่? นี่คือตัวอย่างที่แสดงถึงสิ่งที่ฉันต้องการทำ IDictionary<string, string> args = GetArgsFromSomewhere(); string query = "select * from people where Name = @Name"; var stuff = connection.Query<ExtractionRecord>(query, args);
88 c#  .net  dapper 

5
ตัวสร้างแบบคงที่ถูกเรียกใน C # เมื่อใด
เมื่อฉันมีคลาสที่มีตัวสร้างแบบคงที่คอนสตรัคเตอร์นั้นถูกเรียกเมื่อแอสเซมบลีที่มีคลาสถูกโหลดครั้งแรกหรือเมื่อการอ้างอิงแรกไปยังคลาสนั้นถูกตี
88 c#  static 

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