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

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

9
การแปลง. net Func <T> เป็น. net Expression <Func <T>>
การเปลี่ยนจาก lambda เป็น Expression ทำได้ง่ายโดยใช้วิธีการเรียก ... public void GimmeExpression(Expression&lt;Func&lt;T&gt;&gt; expression) { ((MemberExpression)expression.Body).Member.Name; // "DoStuff" } public void SomewhereElse() { GimmeExpression(() =&gt; thing.DoStuff()); } แต่ฉันต้องการเปลี่ยน Func ให้เป็นนิพจน์ในบางกรณีเท่านั้น ... public void ContainTheDanger(Func&lt;T&gt; dangerousCall) { try { dangerousCall(); } catch (Exception e) { // This next line does not work... Expression&lt;Func&lt;T&gt;&gt; DangerousExpression = …
118 c#  .net  lambda  expression  func 

10
ไฟล์ถูกใช้โดยกระบวนการอื่นหลังจากใช้ File.Create ()
ฉันกำลังพยายามตรวจสอบว่ามีไฟล์อยู่ที่รันไทม์หรือไม่หากไม่มีให้สร้างขึ้น อย่างไรก็ตามฉันได้รับข้อผิดพลาดนี้เมื่อพยายามเขียนถึง: กระบวนการไม่สามารถเข้าถึงไฟล์ 'myfile.ext' ได้เนื่องจากถูกใช้โดยกระบวนการอื่น string filePath = string.Format(@"{0}\M{1}.dat", ConfigurationManager.AppSettings["DirectoryPath"], costCentre); if (!File.Exists(filePath)) { File.Create(filePath); } using (StreamWriter sw = File.AppendText(filePath)) { //write my text } มีแนวคิดในการแก้ไขอย่างไร
118 c#  file-io 

16
อะไรคือความแตกต่างระหว่างอินเทอร์เฟซและคลาสและทำไมฉันจึงควรใช้อินเทอร์เฟซเมื่อฉันสามารถใช้วิธีการโดยตรงในคลาสได้
ฉันรู้ว่านี่เป็นคำถามพื้นฐานมาก แต่ผู้สัมภาษณ์ถามฉันด้วยวิธีที่หลอกลวงมากและฉันก็ทำอะไรไม่ถูก :( ฉันรู้เฉพาะเนื้อหาหรือคำจำกัดความทางทฤษฎีสำหรับอินเทอร์เฟซและยังนำไปใช้ในหลายโครงการที่ฉันทำ แต่ฉันไม่เข้าใจจริงๆว่าทำไมสิ่งนี้ถึงมีประโยชน์ ฉันยังไม่เข้าใจสิ่งหนึ่งในอินเทอร์เฟซ เช่นเราใช้ conn.Dispose();ในที่สุดบล็อก แต่ฉันไม่เห็นว่าคลาสนั้นกำลังใช้หรือสืบทอดIDisposableอินเทอร์เฟซ ( SqlConnection) คลาสที่ฉันหมายถึง ฉันสงสัยว่าฉันจะเรียกชื่อเมธอดได้อย่างไร ในสิ่งเดียวกันฉันไม่เข้าใจว่าวิธีการกำจัดทำงานอย่างไรเพราะเราจำเป็นต้องใช้เนื้อความของฟังก์ชันด้วยการใช้งานของเราเองสำหรับวิธีการอินเทอร์เฟซทั้งหมด แล้วอินเตอร์เฟสได้รับการยอมรับหรือตั้งชื่อเป็นสัญญาอย่างไร? คำถามเหล่านี้ยังคงวนเวียนอยู่ในใจของฉันจนถึงตอนนี้และตรงไปตรงมาฉันไม่เคยเห็นกระทู้ดีๆที่จะอธิบายคำถามของฉันในแบบที่ฉันเข้าใจได้ MSDN ตามปกติดูน่ากลัวมากและไม่มีบรรทัดเดียวชัดเจนที่นั่น (ผู้คนขอแก้ตัวด้วยความกรุณาที่อยู่ในการพัฒนาระดับสูงฉันรู้สึกเป็นอย่างยิ่งว่ารหัสหรือบทความใด ๆ ควรเข้าถึงจิตใจของทุกคนที่เห็นดังนั้นจึงเหมือนกับที่คนอื่น ๆ พูดกัน MSDN ไม่ได้ใช้งาน ) ผู้สัมภาษณ์กล่าวว่า: เขามี 5 วิธีและเขายินดีที่จะนำไปใช้ในคลาสโดยตรง แต่ถ้าคุณต้องไปคลาส Abstract หรืออินเทอร์เฟซคุณจะเลือกวิธีใดและเพราะเหตุใด ฉันตอบเขาทุกเรื่องที่ฉันอ่านในบล็อกต่างๆว่าได้เปรียบและเสียเปรียบทั้งคลาสนามธรรมและอินเทอร์เฟซ แต่เขาไม่มั่นใจเขาพยายามเข้าใจ "Why Interface" โดยทั่วไป "ทำไมต้องเป็นคลาสนามธรรม" โดยทั่วไปแม้ว่าฉันจะสามารถใช้วิธีการเดียวกันได้เพียงครั้งเดียวและไม่สามารถเปลี่ยนแปลงได้ ฉันไม่เห็นที่ไหนในเน็ตฉันสามารถหาบทความที่จะอธิบายฉันอย่างชัดเจนเกี่ยวกับอินเทอร์เฟซและการทำงานของมัน ฉันเป็นหนึ่งในโปรแกรมเมอร์หลายคนที่ยังไม่รู้เกี่ยวกับอินเทอร์เฟซ (ฉันรู้ทฤษฎีและวิธีการที่ฉันใช้) แต่ไม่พอใจที่ฉันเข้าใจมันอย่างชัดเจน
118 c#  class  oop  interface  abstraction 

5
Deserializing JSON Object Array ด้วย Json.net
ฉันพยายามใช้ API ที่ใช้โครงสร้างตัวอย่างต่อไปนี้สำหรับ json ที่ส่งคืน [ { "customer":{ "first_name":"Test", "last_name":"Account", "email":"test1@example.com", "organization":"", "reference":null, "id":3545134, "created_at":"2013-08-06T15:51:15-04:00", "updated_at":"2013-08-06T15:51:15-04:00", "address":"", "address_2":"", "city":"", "state":"", "zip":"", "country":"", "phone":"" } }, { "customer":{ "first_name":"Test", "last_name":"Account2", "email":"test2@example.com", "organization":"", "reference":null, "id":3570462, "created_at":"2013-08-12T11:54:58-04:00", "updated_at":"2013-08-12T11:54:58-04:00", "address":"", "address_2":"", "city":"", "state":"", "zip":"", "country":"", "phone":"" } } ] JSON.net จะทำงานได้ดีกับโครงสร้างต่อไปนี้ { "customer": { …
118 c#  json.net 

2
กำหนดระบบปฏิบัติการใน. NET Core
ฉันจะทราบได้อย่างไรว่าแอป. NET Core ของฉันกำลังทำงานบนระบบปฏิบัติการใด ในอดีตฉันสามารถใช้Environment.OSVersion. วิธีปัจจุบันในการตรวจสอบว่าแอปของฉันทำงานบน Mac หรือ Windows คืออะไร
118 c#  .net-core 

7
Entity Framework Migrations เปลี่ยนชื่อตารางและคอลัมน์
ฉันเปลี่ยนชื่อเอนทิตีสองรายการและคุณสมบัติการนำทางของพวกเขาและสร้างการย้ายใหม่ใน EF 5 ตามปกติกับการเปลี่ยนชื่อในการย้ายข้อมูล EF โดยค่าเริ่มต้นมันจะทิ้งวัตถุและสร้างขึ้นใหม่ นั่นไม่ใช่สิ่งที่ฉันต้องการดังนั้นฉันจึงต้องสร้างไฟล์โยกย้ายตั้งแต่เริ่มต้น public override void Up() { DropForeignKey("dbo.ReportSectionGroups", "Report_Id", "dbo.Reports"); DropForeignKey("dbo.ReportSections", "Group_Id", "dbo.ReportSectionGroups"); DropForeignKey("dbo.Editables", "Section_Id", "dbo.ReportSections"); DropIndex("dbo.ReportSectionGroups", new[] { "Report_Id" }); DropIndex("dbo.ReportSections", new[] { "Group_Id" }); DropIndex("dbo.Editables", new[] { "Section_Id" }); RenameTable("dbo.ReportSections", "dbo.ReportPages"); RenameTable("dbo.ReportSectionGroups", "dbo.ReportSections"); RenameColumn("dbo.ReportPages", "Group_Id", "Section_Id"); AddForeignKey("dbo.ReportSections", "Report_Id", "dbo.Reports", "Id"); AddForeignKey("dbo.ReportPages", "Section_Id", "dbo.ReportSections", …


4
C # วนซ้ำผ่านคุณสมบัติของคลาส
Recordฉันกำลังตั้งค่าทั้งหมดของค่านิยมของวัตถุชั้นของฉัน นี่คือรหัสที่ฉันใช้เพื่อเติมข้อมูลในระเบียนในขณะนี้คุณสมบัติตามคุณสมบัติ // Loop through each field in the result set for (int i = 0; i &lt;= resultItems.Length; i++) { Record newRecord = new Record() { itemtype = resultItems[i - (fieldCount - 0)], itemdesc = resultItems[i - (fieldCount - 1)], prodcode = resultItems[i - (fieldCount - 2)], proddesc = …
118 c#  properties  loops 



10
วิธีใช้ npm กับ ASP.NET Core
ฉันใช้ npm เพื่อจัดการ jQuery, Bootstrap, Font Awesome และไลบรารีไคลเอนต์ที่คล้ายกันที่ฉันต้องการสำหรับแอปพลิเคชัน ASP.NET Core ของฉัน วิธีการที่ใช้ได้ผลสำหรับฉันเริ่มต้นด้วยการเพิ่มไฟล์ package.json ลงในโปรเจ็กต์ซึ่งมีลักษณะดังนี้: { "version": "1.0.0", "name": "myapp", "private": true, "devDependencies": { }, "dependencies": { "bootstrap": "^3.3.6", "font-awesome": "^4.6.1", "jquery": "^2.2.3" } } npm คืนค่าแพ็กเกจเหล่านี้ลงในโฟลเดอร์ node_modules ซึ่งอยู่ในระดับเดียวกับ wwwroot ในไดเร็กทอรีโปรเจ็กต์: เนื่องจาก ASP.NET Core ให้บริการไฟล์แบบคงที่จากโฟลเดอร์ wwwroot และไม่มี node_modules ฉันจึงต้องทำการเปลี่ยนแปลงสองสามอย่างเพื่อให้ทำงานนี้ได้อันแรกคือการเพิ่ม app.UseFileServer ก่อนแอป …

5
จะใช้คุณสมบัติ Can CancelToken ได้อย่างไร?
เมื่อเทียบกับรหัสก่อนหน้าสำหรับคลาส RulyCancelerฉันต้องการเรียกใช้โค้ดโดยใช้ CancellationTokenSource. ฉันจะใช้มันตามที่ระบุไว้ในโทเค็นการยกเลิกได้อย่างไรโดยไม่ต้องโยน / จับข้อยกเว้น ฉันสามารถใช้IsCancellationRequestedทรัพย์สินได้หรือไม่? ฉันพยายามใช้มันในลักษณะนี้: cancelToken.ThrowIfCancellationRequested(); และ try { new Thread(() =&gt; Work(cancelSource.Token)).Start(); } catch (OperationCanceledException) { Console.WriteLine("Canceled!"); } แต่สิ่งนี้ทำให้เกิดข้อผิดพลาดรันไทม์cancelToken.ThrowIfCancellationRequested();ในวิธีการWork(CancellationToken cancelToken): System.OperationCanceledException was unhandled Message=The operation was canceled. Source=mscorlib StackTrace: at System.Threading.CancellationToken.ThrowIfCancellationRequested() at _7CancellationTokens.Token.Work(CancellationToken cancelToken) in C:\xxx\Token.cs:line 33 at _7CancellationTokens.Token.&lt;&gt;c__DisplayClass1.&lt;Main&gt;b__0() in C:\xxx\Token.cs:line 22 at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at …

3
อะไร | = (ท่อเดียวเท่ากับ) และ & = (เครื่องหมายเดียวและเท่ากับ) หมายถึงอะไร
ในบรรทัดด้านล่าง: //Folder.Attributes = FileAttributes.Directory | FileAttributes.Hidden | FileAttributes.System | FileAttributes.ReadOnly; Folder.Attributes |= FileAttributes.Directory | FileAttributes.Hidden | FileAttributes.System | FileAttributes.ReadOnly; Folder.Attributes |= ~FileAttributes.System; Folder.Attributes &amp;= ~FileAttributes.System; อะไร|=(ท่อเดียวเท่ากับ) และ&amp;=(เดี่ยวเครื่องหมายเท่ากับ) เฉลี่ยใน C # ฉันต้องการลบแอตทริบิวต์ระบบที่มีการรักษาคนอื่น ๆ ...

20
เอกสาร Swagger UI Web Api นำเสนอ enums เป็นสตริงหรือไม่
มีวิธีแสดง enums ทั้งหมดเป็นค่าสตริงในรูปแบบ swagger แทนค่า int หรือไม่? ฉันต้องการส่งการกระทำ POST และใส่ enums ตามค่าสตริงโดยไม่ต้องดู enum ทุกครั้ง ฉันลองแล้วDescribeAllEnumsAsStringsแต่เซิร์ฟเวอร์ได้รับสตริงแทนค่า enum ซึ่งไม่ใช่สิ่งที่เรากำลังมองหา มีใครแก้ปัญหานี้ได้บ้าง? แก้ไข: public class Letter { [Required] public string Content {get; set;} [Required] [EnumDataType(typeof(Priority))] public Priority Priority {get; set;} } public class LettersController : ApiController { [HttpPost] public IHttpActionResult SendLetter(Letter letter) { // …

15
เทคนิคนี้เป็นอัลกอริทึม O (1) สำหรับ“ Hello World” หรือไม่
นี่จะจัดเป็นอัลกอริทึม O (1) สำหรับ "Hello, World!" หรือไม่ ?? public class Hello1 { public static void Main() { DateTime TwentyYearsLater = new DateTime(2035,01,01); while ( DateTime.Now &lt; TwentyYearsLater ) { System.Console.WriteLine("It's still not time to print the hello ..."); } System.Console.WriteLine("Hello, World!"); } } ฉันกำลังคิดว่าจะใช้ไฟล์ DateTime TwentyYearsLater = new DateTime(2035,01,01); while …
117 c#  .net  algorithm  big-o 

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