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

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

6
แก้ไขประเภทจากชื่อคลาสในแอสเซมบลีที่แตกต่างกัน
ฉันมีวิธีการที่ฉันต้องการแก้ไขประเภทของคลาส คลาสนี้มีอยู่ในแอสเซมบลีอื่นที่มีเนมสเปซคล้ายกับ: MyProject.Domain.Model ฉันกำลังพยายามดำเนินการดังต่อไปนี้: Type.GetType("MyProject.Domain.Model." + myClassName); วิธีนี้ใช้ได้ผลดีหากโค้ดที่กำลังดำเนินการนี้อยู่ในแอสเซมบลีเดียวกันกับคลาสที่ฉันกำลังพยายามแก้ไขอย่างไรก็ตามหากคลาสของฉันอยู่ในแอสเซมบลีอื่นรหัสนี้จะล้มเหลว ฉันแน่ใจว่ามีวิธีที่ดีกว่าในการทำงานนี้ให้สำเร็จ แต่ฉันไม่มีประสบการณ์มากนักในการแก้ไขแอสเซมบลีและการสำรวจเนมสเปซภายในเพื่อแก้ไขประเภทของคลาสที่ฉันกำลังมองหา คำแนะนำหรือเคล็ดลับในการทำงานนี้ให้สำเร็จลุล่วงอย่างสง่างามมากขึ้น?
87 c#  .net  reflection 

9
Visual Studio 2015 ทำงานช้ามาก
ฉันได้ติดตั้ง Visual Studio 2015 Professional Edition แล้วและข้อมูลจำเพาะคอมพิวเตอร์ของฉันคือ Intel i7-3770 CPU 3.40 GHz, 8 GB RAM และ Windows 7 Enterprise 64-bit ฉันต้องการอัปเกรดโปรเจ็กต์เป็น. NET 4.6 ซึ่งเขียนใน Visual studio 2005 .NET 2.0 แต่ฉันมีปัญหาร้ายแรงเกี่ยวกับความเร็ว หลังจากที่ฉันเปิดโปรเจ็กต์ (โปรเจ็กต์ขนาดใหญ่) ใน Visual Studio 2015 มันจะบ้ามาก การสร้างการดีบักการเปิดเมนูช้าเกินไป บางครั้งฉันได้รับข้อความ "ไม่ตอบสนอง" มันเกี่ยวกับ Windows 7 หรือคุณสามารถให้คำแนะนำเกี่ยวกับปัญหาความเร็วของฉันได้หรือไม่

15
การเรียงลำดับ IList ใน C #
วันนี้ก็เลยเจอปัญหาที่น่าสนใจ เรามีบริการเว็บ WCF ที่ส่งคืน IList ไม่ใช่เรื่องใหญ่จริง ๆ จนอยากจะเรียงลำดับ ปรากฎว่าอินเทอร์เฟซ IList ไม่มีวิธีการจัดเรียงในตัว ฉันลงเอยด้วยArrayList.Adapter(list).Sort(new MyComparer())วิธีการแก้ปัญหา แต่ดูเหมือน "สลัม" สำหรับฉัน ฉันเล่นด้วยการเขียนวิธีการขยายรวมถึงการสืบทอดจาก IList และใช้วิธีการ Sort () ของฉันเองรวมถึงการแคสต์ไปยัง List แต่ไม่มีสิ่งใดที่ดูหรูหราเกินไป คำถามของฉันคือใครมีวิธีแก้ปัญหาที่สวยงามในการจัดเรียง IList
87 c#  generics  sorting  ilist 

6
มัลติเธรดแบบไม่ต้องล็อคมีไว้สำหรับผู้เชี่ยวชาญด้านเธรดตัวจริง
ฉันกำลังอ่านคำตอบที่Jon Skeetให้กับคำถามและในนั้นเขาพูดถึงสิ่งนี้: เท่าที่ฉันกังวลการมัลติเธรดแบบไม่ต้องล็อคนั้นมีไว้สำหรับผู้เชี่ยวชาญด้านเธรดตัวจริงซึ่งฉันไม่ใช่คนเดียว ไม่ใช่ครั้งแรกที่ฉันได้ยินสิ่งนี้ แต่ฉันพบว่ามีคนน้อยมากที่พูดถึงวิธีการที่คุณทำได้จริงหากคุณสนใจที่จะเรียนรู้วิธีการเขียนโค้ดมัลติเธรดแบบไม่ต้องล็อก ดังนั้นคำถามของฉันคือนอกเหนือจากการเรียนรู้ทุกสิ่งที่คุณทำได้เกี่ยวกับเธรด ฯลฯ คุณจะเริ่มพยายามเรียนรู้การเขียนโค้ดมัลติเธรดแบบไม่ล็อคโดยเฉพาะและแหล่งข้อมูลที่ดีมีอะไรบ้าง ไชโย

7
แนวทางปฏิบัติที่ดีที่สุดของการพัฒนาแบบทดสอบโดยใช้ C # และ RhinoMocks [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา เพื่อช่วยทีมของฉันเขียนโค้ดที่สามารถทดสอบได้ฉันจึงได้จัดทำรายการแนวทางปฏิบัติที่ดีที่สุดง่ายๆนี้เพื่อทำให้ฐานรหัส C # ของเราสามารถทดสอบได้มากขึ้น (บางประเด็นอ้างถึงข้อ จำกัด ของ Rhino Mocks ซึ่งเป็นกรอบการเยาะเย้ยสำหรับ C # แต่กฎอาจมีผลบังคับใช้มากขึ้นเช่นกัน) ใครมีแนวทางปฏิบัติที่ดีที่สุดที่พวกเขาปฏิบัติตามหรือไม่? ในการเพิ่มความสามารถในการทดสอบโค้ดให้ปฏิบัติตามกฎเหล่านี้: เขียนแบบทดสอบก่อนแล้วจึงเขียนโค้ด เหตุผล: เพื่อให้แน่ใจว่าคุณเขียนโค้ดที่ทดสอบได้และโค้ดทุกบรรทัดจะได้รับการทดสอบที่เขียนขึ้น ออกแบบคลาสโดยใช้การฉีดแบบพึ่งพา เหตุผล: คุณไม่สามารถล้อเลียนหรือทดสอบสิ่งที่มองไม่เห็นได้ แยกโค้ด UI ออกจากพฤติกรรมโดยใช้ Model-View-Controller หรือ Model-View-Presenter เหตุผล: อนุญาตให้ทดสอบตรรกะทางธุรกิจในขณะที่ย่อส่วนที่ไม่สามารถทดสอบได้ (UI) อย่าเขียนวิธีการหรือคลาสแบบคงที่ เหตุผล: วิธีการคงที่เป็นเรื่องยากหรือเป็นไปไม่ได้ที่จะแยกออกและ Rhino Mocks ไม่สามารถล้อเลียนได้ โปรแกรมปิดอินเทอร์เฟซไม่ใช่คลาส เหตุผล: การใช้อินเทอร์เฟซจะชี้แจงความสัมพันธ์ระหว่างวัตถุ อินเทอร์เฟซควรกำหนดเซอร์วิสที่อ็อบเจ็กต์ต้องการจากสภาพแวดล้อม นอกจากนี้อินเทอร์เฟซสามารถล้อเลียนได้อย่างง่ายดายโดยใช้ Rhino …

5
ต้องวาง GridView ไว้ในแท็กฟอร์มที่มี runat =“ เซิร์ฟเวอร์” แม้ว่า GridView จะอยู่ในแท็กแบบฟอร์มก็ตาม
<form runat="server" id="f1"> <div runat="server" id="d"> grid view: <asp:GridView runat="server" ID="g"> </asp:GridView> </div> <asp:TextBox runat="server" ID="t" TextMode="MultiLine" Rows="20" Columns="50"></asp:TextBox> </form> รหัสหลัง: public partial class ScriptTest : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { g.DataSource = new string[] { "a", "b", "c" }; g.DataBind(); TextWriter tw = new StringWriter(); …
87 c#  .net  asp.net 

9
คูณ TimeSpan ใน. NET
ฉันจะคูณวัตถุ TimeSpan ใน C # ได้อย่างไร สมมติว่าตัวแปรdurationเป็นTimeSpanฉันต้องการตัวอย่างเช่น duration*5 แต่นั่นทำให้ฉันมีข้อผิดพลาด "operator * ไม่สามารถใช้กับประเภท TimeSpan และ int" ได้ นี่คือวิธีแก้ปัญหาปัจจุบันของฉัน duration+duration+duration+duration+duration แต่สิ่งนี้ไม่รวมถึงการคูณที่ไม่ใช่จำนวนเต็มเช่น duration * 3.5
87 c#  .net  date  time  timespan 


5
วิธีรับข้อมูลข้อผิดพลาดเมื่อ HttpWebRequest.GetResponse () ล้มเหลว
ฉันกำลังเริ่มต้น HttpWebRequest แล้วเรียกข้อมูลการตอบกลับ บางครั้งฉันได้รับข้อผิดพลาด 500 (หรืออย่างน้อย 5 ##) แต่ไม่มีคำอธิบาย ฉันสามารถควบคุมจุดสิ้นสุดทั้งสองได้และต้องการให้ปลายทางรับข้อมูลเพิ่มเติมเล็กน้อย ตัวอย่างเช่นฉันต้องการส่งข้อความข้อยกเว้นจากเซิร์ฟเวอร์ไปยังไคลเอนต์ เป็นไปได้ไหมโดยใช้ HttpWebRequest และ HttpWebResponse รหัส: try { HttpWebRequest webRequest = HttpWebRequest.Create(URL) as HttpWebRequest; webRequest.Method = WebRequestMethods.Http.Get; webRequest.Credentials = new NetworkCredential(Username, Password); webRequest.ContentType = "application/x-www-form-urlencoded"; using(HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse) { if(response.StatusCode == HttpStatusCode.OK) { // Do stuff with …

7
ใช้ msbuild เพื่อเรียกใช้งาน File System Publish Profile
ฉันมีโปรเจ็กต์ ac # .Net 4.0 ที่สร้างด้วย VS2010 และตอนนี้สามารถเข้าถึงได้ด้วย VS2012 ฉันพยายามเผยแพร่เฉพาะไฟล์ที่จำเป็นจากเว็บไซต์นี้ไปยังตำแหน่งปลายทาง(C: \ builds \ MyProject [Files]) โครงสร้างไฟล์ของฉัน: ./ProjectRoot/MyProject.csproj ./ProjectRoot/Properties/PublishProfiles/FileSystemDebug.pubxml ฉันเรียกใช้สิ่งต่อไปนี้ผ่าน MSBuild: C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild.exe ./ProjectRoot/MyProject.csproj / p: DeployOnBuild = true /p:PublishProfile=./ProjectRoot/Properties/PublishProfiles/FileSystemDebug.pubxml นี่คือ xml ใน FileSystemDebug.pubxml <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <WebPublishMethod>FileSystem</WebPublishMethod> <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> <LastUsedPlatform>Any CPU</LastUsedPlatform> …

3
DLL คืออะไรและทำงานอย่างไร
ฉันมักจะอ้างถึง DLL ในรหัส C # ของฉัน แต่ก็ยังคงเป็นปริศนาอยู่ซึ่งฉันอยากจะชี้แจง นี่คือคำถามประเภทต่างๆเกี่ยวกับ DLL ฉันเข้าใจว่า DLL คือไลบรารีที่เชื่อมโยงแบบไดนามิกซึ่งหมายความว่าโปรแกรมอื่นสามารถเข้าถึงไลบรารีนี้ในขณะทำงานเพื่อรับ "ฟังก์ชัน" อย่างไรก็ตามให้พิจารณาโครงการ ASP.NET ต่อไปนี้ที่มีWeb.dllและBusiness.dll( Web.dllคือฟังก์ชันส่วนหน้าและอ้างอิงถึงBusiness.dllประเภทและวิธีการ) สิ่งที่จุดไม่Web.dllไดนามิกเชื่อมโยงไปยังBusiness.dll? คุณสังเกตเห็นจำนวนมากใน Windows HDD thrashing สำหรับงานที่ดูเหมือนเล็กเมื่อใช้ Word (ฯลฯ ) และฉันคิดว่า Word กำลังจะปิดและเชื่อมโยงฟังก์ชันการทำงานจาก DLL อื่น ๆ แบบไดนามิกหรือไม่? 1a. นอกจากนี้สิ่งที่โหลดและเชื่อมโยง DLL - OS หรือกรอบเวลาทำงานบางอย่างเช่น. NET framework? 1b. กระบวนการ "เชื่อมโยง" คืออะไร? มีการตรวจสอบความเข้ากันได้หรือไม่ กำลังโหลดลงในหน่วยความจำเดียวกันหรือไม่? การเชื่อมโยงหมายถึงอะไร? อะไรเรียกใช้โค้ดใน DLL …
87 c#  .net  dll 

4
วิธีใช้รอวนซ้ำ
ฉันกำลังพยายามสร้างแอปคอนโซลแบบอะซิงโครนัสที่ทำงานบางอย่างกับคอลเลกชัน ฉันมีเวอร์ชันหนึ่งที่ใช้แบบขนานสำหรับลูปเวอร์ชันอื่นที่ใช้ async / await ฉันคาดว่าเวอร์ชัน async / await จะทำงานคล้ายกับเวอร์ชันคู่ขนาน แต่ดำเนินการพร้อมกัน ผมทำอะไรผิดหรือเปล่า? class Program { static void Main(string[] args) { var worker = new Worker(); worker.ParallelInit(); var t = worker.Init(); t.Wait(); Console.ReadKey(); } } public class Worker { public async Task<bool> Init() { var series = Enumerable.Range(1, 5).ToList(); foreach (var …
87 c#  .net  async-await 

5
จะตรวจสอบข้อมูลรับรองโดเมนได้อย่างไร?
ฉันต้องการตรวจสอบความถูกต้องของชุดข้อมูลรับรองกับตัวควบคุมโดเมน เช่น: Username: STACKOVERFLOW\joel Password: splotchy วิธีที่ 1. สืบค้น Active Directory ด้วยการแอบอ้างบุคคลอื่น ผู้คนจำนวนมากแนะนำให้ค้นหา Active Directory สำหรับบางสิ่ง หากเกิดข้อยกเว้นแสดงว่าคุณทราบว่าข้อมูลรับรองไม่ถูกต้องตามที่แนะนำในคำถาม stackoverflowนี้ อย่างไรก็ตามมีข้อเสียที่ร้ายแรงบางประการสำหรับแนวทางนี้ : คุณไม่เพียง แต่ตรวจสอบสิทธิ์บัญชีโดเมนเท่านั้น แต่คุณกำลังทำการตรวจสอบการอนุญาตโดยปริยายด้วย นั่นคือคุณกำลังอ่านคุณสมบัติจาก AD โดยใช้โทเค็นการเลียนแบบ จะเกิดอะไรขึ้นถ้าบัญชีอื่นที่ถูกต้องไม่มีสิทธิ์อ่านจาก AD? โดยค่าเริ่มต้นผู้ใช้ทุกคนมีสิทธิ์ในการอ่าน แต่สามารถตั้งค่านโยบายโดเมนเพื่อปิดใช้งานสิทธิ์การเข้าถึงสำหรับบัญชีที่ถูก จำกัด (และหรือกลุ่ม) การเชื่อมโยงกับ AD มีค่าใช้จ่ายที่ร้ายแรงแคชสกีมาของ AD จะต้องถูกโหลดที่ไคลเอนต์ (แคช ADSI ในตัวให้บริการ ADSI ที่ใช้โดย DirectoryServices) นี่เป็นทั้งเครือข่ายและเซิร์ฟเวอร์ AD ซึ่งสิ้นเปลืองทรัพยากรและมีราคาแพงเกินไปสำหรับการดำเนินการง่ายๆเช่นการตรวจสอบบัญชีผู้ใช้ คุณอาศัยความล้มเหลวของข้อยกเว้นสำหรับกรณีที่ไม่พิเศษและสมมติว่านั่นหมายถึงชื่อผู้ใช้และรหัสผ่านไม่ถูกต้อง ปัญหาอื่น ๆ (เช่นความล้มเหลวของเครือข่ายความล้มเหลวในการเชื่อมต่อ …

5
รหัสสำนวนคืออะไร?
ฉันสนใจตัวอย่าง c # ก่อนและหลังบางตัวอย่างที่ไม่ใช่สำนวนกับสำนวน ตัวอย่างที่ไม่ใช่ c # ก็ใช้ได้เช่นกันหากพวกเขาเข้าใจแนวคิดนี้ ขอบคุณ.
87 c# 

2
การทำความเข้าใจอินเทอร์เฟซ Covariant และ Contravariant ใน C #
ฉันเจอสิ่งเหล่านี้ในหนังสือเรียนที่ฉันอ่านเรื่อง C # แต่ฉันมีปัญหาในการทำความเข้าใจอาจเนื่องมาจากไม่มีบริบท มีคำอธิบายที่สั้นกระชับเกี่ยวกับสิ่งที่พวกเขาคืออะไรและสิ่งที่มีประโยชน์สำหรับที่นั่นหรือไม่? แก้ไขเพื่อความกระจ่าง: อินเตอร์เฟซ Covariant: interface IBibble<out T> . . อินเทอร์เฟซ Contravariant: interface IBibble<in T> . .

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