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

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

4
NUnit กับ xUnit
Наэтотвопросестьответына กองมากเกินнарусском : Чтовыбрать: nUnit VS xUnit? อะไรคือความแตกต่างระหว่างNUnitและxUnit.net ? อะไรคือจุดสำคัญของการพัฒนาพวกเขาสองคนไม่ใช่แค่เรื่องเดียว? ฉันได้อ่านมาว่า xUnit กำลังพัฒนาโดยผู้คิดค้น NUnit: xUnit.net เป็นเครื่องมือทดสอบหน่วยสำหรับ. NET Framework เขียนโดย ผู้ประดิษฐ์ดั้งเดิมของ NUnit ในทางกลับกัน: NUnit เป็นเฟรมเวิร์กการทดสอบหน่วยสำหรับภาษา. Net ทั้งหมด .. รุ่นที่ใช้งานจริงเวอร์ชันปัจจุบัน 2.6 เป็นรุ่นหลักลำดับที่ 7 ของเครื่องมือทดสอบหน่วยที่ใช้ xUnitนี้ แล้วความจริงอยู่ที่ไหน?
121 c#  .net  nunit  xunit 

14
จะอ่านเนื้อหาคำขอในตัวควบคุม webapi หลักของ asp.net ได้อย่างไร
ฉันพยายามอ่านเนื้อหาคำขอในOnActionExecutingวิธีการ แต่ฉันมักจะเข้าใจnullร่างกาย var request = context.HttpContext.Request; var stream = new StreamReader(request.Body); var body = stream.ReadToEnd(); ฉันพยายามตั้งค่าตำแหน่งสตรีมอย่างชัดเจนเป็น 0 แต่ก็ไม่ได้ผลเช่นกัน เนื่องจากนี่คือ ASP.NET Core ฉันคิดว่าสิ่งต่าง ๆ แตกต่างกันเล็กน้อย ฉันสามารถดูตัวอย่างทั้งหมดได้ที่นี่ซึ่งอ้างอิงถึง Web API เวอร์ชันเก่า มีวิธีอื่นในการทำเช่นนี้หรือไม่?

10
การแปลเป็นภาษาท้องถิ่นของ DisplayNameAttribute
ฉันกำลังมองหาวิธีการแปลชื่อคุณสมบัติที่แสดงใน PropertyGrid ชื่อของคุณสมบัติอาจเป็น "overriden" โดยใช้แอตทริบิวต์ DisplayNameAttribute น่าเสียดายที่แอตทริบิวต์ไม่สามารถมีนิพจน์ที่ไม่ใช่ค่าคงที่ ดังนั้นฉันจึงไม่สามารถใช้ทรัพยากรที่พิมพ์มากเช่น: class Foo { [DisplayAttribute(Resources.MyPropertyNameLocalized)] // do not compile string MyProperty {get; set;} } ฉันมองไปรอบ ๆ และพบคำแนะนำที่จะสืบทอดจาก DisplayNameAttribute เพื่อให้สามารถใช้ทรัพยากรได้ ฉันจะลงเอยด้วยรหัสเช่น: class Foo { [MyLocalizedDisplayAttribute("MyPropertyNameLocalized")] // not strongly typed string MyProperty {get; set;} } อย่างไรก็ตามฉันสูญเสียประโยชน์ทรัพยากรที่พิมพ์อย่างมากซึ่งไม่ใช่เรื่องดีแน่นอน จากนั้นฉันก็เจอDisplayNameResourceAttributeซึ่งอาจเป็นสิ่งที่ฉันกำลังมองหา แต่มันควรจะอยู่ใน Microsoft.VisualStudio.Modeling.Design namespace และฉันไม่พบข้อมูลอ้างอิงที่ฉันควรจะเพิ่มสำหรับเนมสเปซนี้ มีใครรู้บ้างว่ามีวิธีที่ง่ายกว่าในการปรับให้เข้ากับ DisplayName ด้วยวิธีที่ดีกว่านี้หรือไม่ หรือมีวิธีใช้สิ่งที่ …

19
ฉันจะเรียกใช้ NUnit ในโหมดดีบักจาก Visual Studio ได้อย่างไร
ฉันเพิ่งสร้างกรอบการทดสอบสำหรับ C # ที่ฉันได้ดำเนินการไป ฉันได้ตั้งค่า NUnit และโปรเจ็กต์ใหม่ภายในพื้นที่ทำงานของฉันเพื่อทดสอบส่วนประกอบ ทั้งหมดทำงานได้ดีถ้าฉันโหลดการทดสอบหน่วยจาก Nunit (v2.4) แต่ฉันมาถึงจุดที่จะมีประโยชน์มากในการทำงานในโหมดดีบักและตั้งค่าจุดพัก ฉันได้ลองทำตามคำแนะนำจากหลาย ๆ คำแนะนำซึ่งทั้งหมดแนะนำให้เปลี่ยนคุณสมบัติ 'Debug' ของโครงการทดสอบ: Start external program: C:\Program Files\NUnit 2.4.8\bin\nunit-console.exe Command line arguments: /assembly: <full-path-to-solution>\TestDSP\bin\Debug\TestDSP.dll ฉันใช้เวอร์ชันคอนโซลที่นั่น แต่ได้ลองเรียก GUI ด้วย ทั้งคู่ให้ข้อผิดพลาดเดียวกันกับฉันเมื่อฉันพยายามและเริ่มการดีบัก: Cannot start test project 'TestDSP' because the project does not contain any tests. เป็นเพราะปกติฉันโหลด \ DSP.nunit ลงใน Nunit …

12
มีเอาต์พุตของแอปพลิเคชันคอนโซลใน Visual Studio แทนที่จะเป็นคอนโซล
เมื่อทำแอปพลิเคชันคอนโซลใน Java ด้วย Eclipse ฉันเห็นเอาต์พุตถูกใส่ในกล่องข้อความใน IDE เองแทนที่จะมีคอนโซลโผล่ขึ้นมาเหมือนใน Visual Studio สิ่งนี้มีประโยชน์แม้ว่าหลังจากออกจากโปรแกรมไปแล้วฉันก็ยังสามารถใช้ประโยชน์จากข้อความที่เขียนไว้ได้อย่างเต็มที่เนื่องจากจะไม่ถูกลบจนกว่าฉันจะเรียกใช้อีกครั้ง เป็นไปได้ไหมที่จะบรรลุสิ่งนั้นด้วย Visual Studio? ฉันรู้ว่าแทนที่จะทำ System.Console.WriteLine(str); ที่ฉันสามารถทำได้ System.Diagnostics.Debug.WriteLine(str); แต่มันก็ไม่เหมือนกันเสียทีเดียวเนื่องจากคุณได้รับ "ขยะ" จำนวนมากในหน้าต่างเอาท์พุทเนื่องจากสัญลักษณ์ที่โหลดทั้งหมดและอื่น ๆ ยิ่งไปกว่านั้นเป็นไปได้ไหมที่จะทำทุกอย่างใน IDE เองเมื่อคุณเรียกใช้แอปพลิเคชันแทนที่จะให้คอนโซลทำงาน

8
ModelState.IsValid == false ทำไม?
ฉันจะค้นหารายการข้อผิดพลาดที่ทำให้ ModelState ไม่ถูกต้องได้ที่ไหน ฉันไม่เห็นคุณสมบัติข้อผิดพลาดใด ๆ บนวัตถุ ModelState

4
สร้างแถบเมนูใน WPF หรือไม่
ฉันต้องการสร้างแถบเมนูที่เหมือนกับในรูปแบบ windows ในแอปพลิเคชัน WPF ของฉัน ฉันจะทำอย่างไร ตัวเลือกเมนูในกล่องเครื่องมือการควบคุม WPF จะให้เฉพาะแถบว่างเท่านั้น
120 c#  wpf  xaml 

6
การส่งคืน 'IList' เทียบกับ 'ICollection' เทียบกับ 'Collection'
ฉันสับสนเกี่ยวกับประเภทคอลเลกชันที่ฉันควรส่งคืนจากเมธอดและคุณสมบัติ API สาธารณะของฉัน คอลเลกชันที่ฉันมีในใจIList, และICollectionCollection การส่งคืนประเภทใดประเภทหนึ่งเหล่านี้เป็นที่ต้องการมากกว่าประเภทอื่น ๆ เสมอหรือขึ้นอยู่กับสถานการณ์เฉพาะหรือไม่
120 c#  .net  generics  collections 

11
จะคืน PDF ไปยังเบราว์เซอร์ใน MVC ได้อย่างไร
ฉันมีรหัสสาธิตสำหรับ iTextSharp Document document = new Document(); try { PdfWriter.GetInstance(document, new FileStream("Chap0101.pdf", FileMode.Create)); document.Open(); document.Add(new Paragraph("Hello World")); } catch (DocumentException de) { Console.Error.WriteLine(de.Message); } catch (IOException ioe) { Console.Error.WriteLine(ioe.Message); } document.Close(); ฉันจะให้คอนโทรลเลอร์ส่งคืนเอกสาร pdf ไปยังเบราว์เซอร์ได้อย่างไร แก้ไข: การเรียกใช้รหัสนี้เปิด Acrobat แต่ฉันได้รับข้อความแสดงข้อผิดพลาด "ไฟล์เสียหายและไม่สามารถซ่อมแซมได้" public FileStreamResult pdf() { MemoryStream m = new MemoryStream(); Document document …

6
จะเพิ่มข้อความลงในโค้ด WPF ในโค้ดได้อย่างไร?
ฉันรู้สึกโง่ แต่ไม่สามารถหาวิธีเพิ่มข้อความในการควบคุม WPF Label ในโค้ดได้ เช่นต่อไปนี้สำหรับ TextBlock: DesrTextBlock.Text = "some text"; คุณสมบัติเทียบเท่าใน Label สำหรับทำอะไร? DesrLabel.??? = "some text"; //something like this
120 c#  wpf 

2
จำเป็นต้องลบตัวจัดการเหตุการณ์ใน C # อย่างชัดเจนหรือไม่
ฉันมีชั้นเรียนที่เสนอกิจกรรมบางอย่าง คลาสนั้นได้รับการประกาศทั่วโลก แต่ไม่รวมอยู่ในการประกาศระดับโลกนั้น - มันได้รับการติดตั้งบนพื้นฐานที่จำเป็นในวิธีการที่จำเป็น แต่ละครั้งที่จำเป็นต้องใช้คลาสนั้นในเมธอดคลาสนั้นจะถูกอินสแตนซ์และตัวจัดการเหตุการณ์จะถูกลงทะเบียน จำเป็นหรือไม่ที่จะต้องลบตัวจัดการเหตุการณ์อย่างชัดเจนก่อนที่เมธอดจะอยู่นอกขอบเขต เมื่อเมธอดอยู่นอกขอบเขตอินสแตนซ์ของคลาสก็เช่นกัน การออกจากตัวจัดการเหตุการณ์ที่ลงทะเบียนกับอินสแตนซ์ที่กำลังจะอยู่นอกขอบเขตนั้นมีผลกระทบต่อหน่วยความจำหรือไม่ (ฉันสงสัยว่าตัวจัดการเหตุการณ์จะป้องกันไม่ให้ GC เห็นอินสแตนซ์ของคลาสที่ไม่มีการอ้างอิงอีกต่อไป)

8
แอพ Metro ใน Windows 8 จะสื่อสารกับแอพเดสก์ท็อปแบ็กเอนด์บนเครื่องเดียวกันได้อย่างไร
ในสถานการณ์ที่คุณมีส่วนหน้า UI ที่สร้างขึ้นโดยใช้แอพสไตล์เมโทรใหม่สำหรับ windows 8 และต้องการให้มันสื่อสารกับแอปพลิเคชัน. NET ที่ทำงานบนเดสก์ท็อปบนเครื่องท้องถิ่นเดียวกัน (เช่นแอปบริการ windows) การสื่อสารระหว่างกระบวนการมีรูปแบบใดบ้างระหว่างแอป Metro และแอปเดสก์ท็อป ขอขอบคุณ Pavel Minaev จากทีม Visual Studio ที่ให้ข้อมูลเบื้องต้นบางส่วนที่นี่ในความคิดเห็นโดยอ้างถึง: จากข้อมูลของ Martyn Lovell ไม่มีกลไกใด ๆ สำหรับสิ่งนั้นและบางส่วนที่สามารถใช้งานได้นั้นถูก จำกัด โดยเจตนา ท่อที่มีชื่อจะไม่มีเช่นและไม่มีไฟล์ที่แมปหน่วยความจำ มีซ็อกเก็ต (รวมถึงซ็อกเก็ตเซิร์ฟเวอร์) แต่เมื่อเชื่อมต่อกับ localhost คุณสามารถเชื่อมต่อกับแอพเดียวกันเท่านั้น คุณสามารถใช้ไฟล์ปกติในหนึ่งใน "โฟลเดอร์ที่รู้จัก" ที่แชร์ (เอกสารรูปภาพ ฯลฯ ) แต่นั่นเป็นการแฮ็กที่ค่อนข้างหยาบซึ่งจำเป็นต้องมีการสำรวจและผู้ใช้สามารถมองเห็นได้ - Pavel Minaevแสดงความคิดเห็นเกี่ยวกับปัญหานี้ ดังนั้นการล้มเหลวในแนวทางปกติฉันกำลังคิดที่จะใช้บริการเว็บหรือการอ่าน / เขียนไปยังฐานข้อมูลเพื่อให้รูปแบบการสื่อสารบางอย่างเกิดขึ้นซึ่งทั้งสองอย่างนี้ดูเหมือนจะมากเกินไปเมื่อกระบวนการทำงานบนเครื่องเดียวกัน สิ่งที่ฉันพยายามทำอยู่ตรงนี้สมเหตุสมผลไหม ฉันเห็นว่าจำเป็นต้องมีแอปรถไฟฟ้าใต้ดินเพื่อเป็น UI …

20
ไม่ได้ตั้งค่าคุณสมบัติ OutputPath สำหรับโครงการนี้
เมื่อฉันพยายามคอมไพล์โครงการของฉันจากโหมดดีบัก x86 ใน Visual Studio 2008 ฉันได้รับข้อผิดพลาดนี้ เมื่อฉันดูกลุ่มอสังหาริมทรัพย์ของโครงการที่ร้องเรียนฉันเห็นว่ามีการตั้งค่าเส้นทางเอาต์พุต นี่คือส่วนกลุ่มคุณสมบัติสำหรับไฟล์. csproj <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <DebugSymbols>true</DebugSymbols> <OutputPath>bin\x86\Debug\</OutputPath> <DefineConstants>DEBUG;TRACE</DefineConstants> <BaseAddress>285212672</BaseAddress> <FileAlignment>4096</FileAlignment> <DebugType>full</DebugType> <PlatformTarget>x86</PlatformTarget> <ErrorReport>prompt</ErrorReport> มีใครให้ความกระจ่างเรื่องนี้ได้ไหม? หมายเหตุ: เมื่อฉันรวบรวม Debug นี้และ CPU ใด ๆ ก็ใช้งานได้ ปรับปรุง:ข้อผิดพลาด 1 ไม่ได้ตั้งค่าคุณสมบัติ OutputPath สำหรับโครงการนี้ โปรดตรวจสอบให้แน่ใจว่าคุณได้ระบุชุดค่าผสมการกำหนดค่า / แพลตฟอร์มที่ถูกต้อง Configuration = 'Debug' Platform = 'x86'
120 c#  visual-studio 

27
วิธีรับการควบคุมลูกทั้งหมดของรูปแบบ Windows แบบเฉพาะเจาะจง (ปุ่ม / กล่องข้อความ)
ฉันต้องการรับการควบคุมทั้งหมดในแบบฟอร์มที่เป็นประเภท x ฉันค่อนข้างแน่ใจว่าเคยเห็นรหัสนั้นในอดีตที่เคยใช้อะไรแบบนี้: dim ctrls() as Control ctrls = Me.Controls(GetType(TextBox)) ฉันรู้ว่าฉันสามารถทำซ้ำการควบคุมทั้งหมดในการรับเด็กโดยใช้ฟังก์ชันเรียกซ้ำได้ แต่มีอะไรที่ง่ายกว่าหรือตรงไปตรงมามากกว่านี้หรือไม่อาจเป็นดังนี้ Dim Ctrls = From ctrl In Me.Controls Where ctrl.GetType Is Textbox
120 c#  .net  vb.net  winforms  controls 

19
ใน C # จะตรวจสอบได้อย่างไรว่ามีพอร์ต TCP หรือไม่?
ใน C # เพื่อใช้ TcpClient หรือโดยทั่วไปเพื่อเชื่อมต่อกับซ็อกเก็ตฉันจะตรวจสอบก่อนว่าพอร์ตบางพอร์ตว่างบนเครื่องของฉันได้อย่างไร? ข้อมูลเพิ่มเติม: นี่คือรหัสที่ฉันใช้: TcpClient c; //I want to check here if port is free. c = new TcpClient(ip, port);
120 c#  .net  tcp  tcpclient 

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