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

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

6
“ เปิด / ปิด” SqlConnection หรือเปิดค้างไว้?
ฉันมีการนำตรรกะทางธุรกิจของฉันไปใช้ในคลาสแบบคงที่ด้วยวิธีการคงที่ แต่ละวิธีเหล่านี้เปิด / ปิดการเชื่อมต่อ SQL เมื่อถูกเรียก: public static void DoSomething(string something) { using (SqlConnection connection = new SqlConnection("...")) { connection.Open(); // ... connection.Close(); } } แต่ฉันคิดว่าการหลีกเลี่ยงการเปิดและปิดการเชื่อมต่อจะช่วยประหยัดประสิทธิภาพได้ ฉันทำการทดสอบบางอย่างเมื่อครั้งก่อนด้วยคลาสOleDbConnection (ไม่แน่ใจเกี่ยวกับ SqlConnection) และมันช่วยได้มากในการทำงานเช่นนี้ (เท่าที่ฉันจำได้): //pass the connection object into the method public static void DoSomething(string something, SqlConnection connection) { bool openConn = (connection.State …
122 c#  sqlconnection 

3
IMvcBuilder AddJsonOptions ไปอยู่ที่ไหนใน. Net Core 3.0
ฉันเพิ่งอัปเกรดโครงการ ASP web API จากไฟล์. Net core 2.0ถึง3.0. ฉันใช้ services.AddMvc() .AddJsonOptions(options =>options.SerializerSettings.ContractResolver = new DefaultContractResolver()); ก่อนหน้านี้เพื่อให้แน่ใจว่าปลอกล่างของ JSON แบบอนุกรม หลังจากอัปเกรดเป็น 3.0 ฉันได้รับข้อผิดพลาดนี้: ข้อผิดพลาด CS1061 'IMvcBuilder' ไม่มีคำจำกัดความสำหรับ 'AddJsonOptions' และไม่มีวิธีการขยายที่สามารถเข้าถึงได้ 'AddJsonOptions' ที่ยอมรับอาร์กิวเมนต์แรกของประเภท 'IMvcBuilder' (คุณไม่มีคำสั่งโดยใช้การอ้างอิงหรือการอ้างอิงแอสเซมบลีหรือไม่) ตามAddJsonOptions สำหรับ MvcJsonOptions ใน Asp.Net Core 2.2วิธีการขยาย AddJsonOptions ได้รับการจัดเตรียมโดยแพคเกจMicrosoft.AspNetCore.Mvc.Formatters.Json nuget ฉันได้ลองติดตั้ง / ติดตั้งใหม่แล้ว แต่ยังไม่สามารถแก้ไขวิธีนี้ได้ ที่น่าสนใจ intellisense แสดงเฉพาะ Microsoft.AspNetCore.Mvc.Formatters Xmlเมื่อฉันพยายามเพิ่มคำสั่งใช้แม้ว่าฉันจะเพิ่มแพ็คเกจJson …

8
ไม่รองรับการใช้ 'UseMvc' เพื่อกำหนดค่า MVC ขณะใช้ Endpoint Routing
ฉันมีโครงการ Asp.Net core 2.2 เมื่อเร็ว ๆ นี้ฉันเปลี่ยนเวอร์ชันจาก. net core 2.2 เป็น. net core 3.0 Preview 8 หลังจากการเปลี่ยนแปลงนี้ฉันเห็นข้อความเตือนนี้: ไม่รองรับการใช้ 'UseMvc' เพื่อกำหนดค่า MVC ขณะใช้ Endpoint Routing หากต้องการใช้ 'UseMvc' ต่อไปโปรดตั้งค่า 'MvcOptions.EnableEndpointRouting = false' ภายใน 'ConfigureServices' ฉันเข้าใจว่าการตั้งค่าEnableEndpointRoutingเป็นเท็จฉันสามารถแก้ปัญหาได้ แต่ฉันจำเป็นต้องรู้ว่าอะไรคือวิธีที่เหมาะสมในการแก้ปัญหาและเหตุใด Endpoint Routing จึงไม่จำเป็นต้องมีUseMvc()ฟังก์ชัน

21
Visual Studio 2015 ไม่เน้นไวยากรณ์ที่เน้นมีดโกนหรือ Intellisense
มุมมอง Razor ของฉันใน VS2015 RC ไม่แสดงสีที่เหมาะสมสำหรับรหัส C # โครงการของฉันทำงานได้ดีใน VS2013 แต่ไม่ใช่ในปี 2015 และไม่ได้ให้ Intellisense กับรหัส C # โซลูชันสร้างขึ้นและไซต์ทำงานได้ดี ฉันลองทำสิ่งต่อไปนี้แล้ว แต่ก็ไม่มีประโยชน์ ปิดใช้งานส่วนขยาย Visual Studio ทั้งหมด ลบ.suoไฟล์ของฉัน การลบโครงการและเพิ่มเข้าไปในโซลูชัน ฉันจะแก้ไขปัญหานี้ได้อย่างไร? ตัวอย่าง:

3
นี่คือสปาร์ตาหรือมัน?
ต่อไปนี้เป็นคำถามสัมภาษณ์ ฉันคิดวิธีแก้ปัญหาขึ้นมา แต่ไม่แน่ใจว่าทำไมถึงได้ผล คำถาม: โดยไม่มีการแก้ไขSpartaระดับเขียนโค้ดบางอย่างที่ทำให้ผลตอบแทนMakeItReturnFalsefalse public class Sparta : Place { public bool MakeItReturnFalse() { return this is Sparta; } } วิธีแก้ปัญหาของฉัน: (สปอยเลอร์) public class Place { public interface Sparta { } } แต่ทำไมSpartaในMakeItReturnFalse()หมายถึง{namespace}.Place.Spartaแทน{namespace}.Sparta?

19
.NET XML serialization gotchas? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันเจอปัญหาบางอย่างเมื่อทำการอนุกรม C # XML ที่ฉันคิดว่าจะแบ่งปัน: คุณไม่สามารถจัดลำดับรายการที่อ่านอย่างเดียว (เช่น KeyValuePairs) คุณไม่สามารถจัดลำดับพจนานุกรมทั่วไปได้ ลองใช้คลาส wrapper นี้แทน (จากhttp://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx ): using System; using System.Collections.Generic; using System.Text; using System.Xml.Serialization; [XmlRoot("dictionary")] public class SerializableDictionary<TKey, TValue> : Dictionary<TKey, TValue>, IXmlSerializable { public System.Xml.Schema.XmlSchema GetSchema() { return null; } public void ReadXml(System.Xml.XmlReader …

4
เหตุใดการจัดแนวโครงสร้างจึงขึ้นอยู่กับว่าประเภทฟิลด์เป็นแบบดั้งเดิมหรือผู้ใช้กำหนด
ในNoda Time v2 เรากำลังเคลื่อนไปสู่ความละเอียดระดับนาโนวินาที นั่นหมายความว่าเราไม่สามารถใช้จำนวนเต็ม 8 ไบต์เพื่อแสดงช่วงเวลาทั้งหมดที่เราสนใจได้อีกต่อไปนั่นทำให้ฉันต้องตรวจสอบการใช้หน่วยความจำของโครงสร้าง (จำนวนมาก) ของ Noda Time ซึ่งทำให้ฉัน เพื่อเปิดเผยความแปลกประหลาดเล็กน้อยในการตัดสินใจจัดตำแหน่งของ CLR ประการแรกผมรู้ว่านี่คือการตัดสินใจการดำเนินงานและการทำงานเริ่มต้นอาจมีการเปลี่ยนแปลงได้ตลอดเวลา ฉันรู้ว่าฉันสามารถแก้ไขได้โดยใช้[StructLayout]และ[FieldOffset]แต่ฉันอยากจะหาวิธีแก้ปัญหาที่ไม่ต้องการสิ่งนั้นถ้าเป็นไปได้ สถานการณ์หลักของฉันที่ฉันมีstructซึ่งมีข้อมูลอ้างอิงและแบบสองช่องค่าชนิดอื่น ๆ intที่มีเขตข้อมูลเหล่านั้นห่อง่ายสำหรับ ฉันหวังว่าจะแสดงเป็น 16 ไบต์บน 64-bit CLR (8 สำหรับการอ้างอิงและ 4 สำหรับแต่ละอัน) แต่ด้วยเหตุผลบางประการจึงใช้ 24 ไบต์ ฉันกำลังวัดพื้นที่โดยใช้อาร์เรย์ - ฉันเข้าใจว่าการจัดวางอาจแตกต่างกันในสถานการณ์ที่แตกต่างกัน แต่นี่เป็นจุดเริ่มต้นที่สมเหตุสมผล นี่คือโปรแกรมตัวอย่างที่แสดงให้เห็นถึงปัญหา: using System; using System.Runtime.InteropServices; #pragma warning disable 0169 struct Int32Wrapper { int x; } …



14
คิวขนาดคงที่ซึ่ง dequeues ค่าเก่าโดยอัตโนมัติตาม enques ใหม่
ฉันใช้ConcurrentQueueสำหรับโครงสร้างข้อมูลที่ใช้ร่วมกันซึ่งมีจุดประสงค์เพื่อเก็บวัตถุ N สุดท้ายที่ส่งผ่านไปยังมัน (ชนิดของประวัติ) สมมติว่าเรามีเบราว์เซอร์และเราต้องการมี URL ที่เรียกดู 100 รายการล่าสุด ฉันต้องการคิวที่วาง (dequeue) รายการที่เก่าที่สุด (แรก) โดยอัตโนมัติเมื่อมีการแทรกรายการใหม่ (enqueue) เมื่อความจุเต็ม (100 ที่อยู่ในประวัติ) ฉันจะทำสิ่งนั้นให้สำเร็จได้System.Collectionsอย่างไร?
121 c#  queue  fifo 


3
จะวนซ้ำไฟล์ทั้งหมดในไดเร็กทอรีใน c # .net ได้อย่างไร?
ฉันต้องการรับไฟล์ในโฟลเดอร์และในโฟลเดอร์ย่อยด้วยรหัสต่อไปนี้ไม่ได้รับไฟล์ในโฟลเดอร์ย่อย: string[] files = Directory.GetFiles(txtFolderPath.Text, "*ProfileHandler.cs"); ใครช่วยบอกวิธีใช้ใน c # .net ได้ไหม
121 c#  .net 

2
การตั้งค่า Embed Interop types ที่เป็นจริงและเท็จใน Visual Studio แตกต่างกันอย่างไร
ใน Visual Studio เมื่อเพิ่มการอ้างอิงหนึ่งรายการในโครงการหน้าต่างคุณสมบัติมีตัวเลือกEmbed Inteop Typesเราควรตั้งค่าเป็นTrueหรือFalse? อะไรคือความแตกต่าง? เนื่องจากเรามีโปรเจ็กต์จำนวนมากในบางโปรเจ็กต์จึงมีการตั้งค่าการอ้างอิงFalseและอื่น ๆ ถูกตั้งค่าเป็นTrueมันจึงยุ่งเหยิง และเซิร์ฟเวอร์ bulid ก็มีคำเตือนเหมือนกัน: “ การอ้างอิงถูกสร้างขึ้นเพื่อฝังตัวประกอบระหว่างกัน” หมายความว่าอย่างไร ดังนั้นเราจึงวางแผนที่จะเปลี่ยนทั้งหมดEmbed Inteop Typesเพื่อFalseสิ่งที่มีความเสี่ยงที่เราจะได้รับ?
121 c#  visual-studio 


11
วิธีตั้งค่า ASPNETCORE_ENVIRONMENT ให้ได้รับการพิจารณาสำหรับการเผยแพร่แอปพลิเคชันหลักของ asp.net
เมื่อฉันเผยแพร่แอปพลิเคชันเว็บหลักของ asp.net ไปยังระบบไฟล์ภายในเครื่องจะใช้การกำหนดค่าการผลิตและตัวแปร ASPNETCORE_ENVIRONMENT ด้วยค่า = "การผลิต" เสมอ และวิธีการที่ฉันจะต้องตั้งค่าของตัวแปร ASPNETCORE_ENVIRONMENT เพื่อที่มันจะได้รับการพิจารณาไม่เพียง แต่สำหรับการแก้จุดบกพร่อง แต่ยังสำหรับการเผยแพร่ ? ฉันลองตัวเลือกต่อไปนี้แล้ว แต่ไม่ประสบความสำเร็จ: ในการตั้งค่า windows ในไฟล์. pubxml ใน launchSettings.json ใน project.json

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