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

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

8
.Net Core Unit Testing - Mock IOptions <T>
ฉันรู้สึกว่าฉันพลาดอะไรบางอย่างที่เห็นได้ชัดที่นี่ ฉันมีคลาสที่ต้องการการฉีดตัวเลือกโดยใช้รูปแบบ. Net Core IOptions (?) เมื่อฉันไปทดสอบหน่วยชั้นเรียนนั้นฉันต้องการจำลองเวอร์ชันต่างๆของตัวเลือกในการตรวจสอบการทำงานของชั้นเรียน มีใครรู้วิธีจำลอง / สร้างอินสแตนซ์ / เติมข้อมูล IOptions นอกคลาส Startup ได้อย่างถูกต้อง นี่คือตัวอย่างบางส่วนของคลาสที่ฉันทำงานด้วย: รูปแบบการตั้งค่า / ตัวเลือก using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace OptionsSample.Models { public class SampleOptions { public string FirstSetting { get; set; } public int SecondSetting { get; set; } } …

7
รับจำนวนวันในหนึ่งเดือน
ฉันมีกล่องคำสั่งผสมที่มีทุกเดือนอยู่ในนั้น สิ่งที่ฉันต้องรู้คือจำนวนวันในเดือนที่เลือก var month = cmbMonth.SelectedIndex + 1; DateTime date = Convert.ToDateTime(month); ดังนั้นหากผู้ใช้เลือกมกราคมฉันต้องบันทึก 31 เป็นตัวแปร
137 c#  datetime 

13
ฉันสามารถ "คูณ" สตริง (ใน C #)?
สมมติว่าฉันมีสตริงตัวอย่างเช่น string snip = "&lt;/li&gt;&lt;/ul&gt;"; ฉันต้องการเขียนหลายครั้งขึ้นอยู่กับค่าจำนวนเต็ม string snip = "&lt;/li&gt;&lt;/ul&gt;"; int multiplier = 2; // TODO: magic code to do this // snip * multiplier = "&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;"; แก้ไข: ฉันรู้ว่าฉันสามารถเขียนฟังก์ชั่นของตัวเองเพื่อนำไปใช้งานได้ง่ายฉันแค่สงสัยว่ามีตัวดำเนินการสตริงแปลก ๆ ที่ฉันไม่รู้

6
ข้อผิดพลาดสตริง C # nullable
private string? typeOfContract { get { return (string?)ViewState["typeOfContract"]; } set { ViewState["typeOfContract"] = value; } } ต่อมาในรหัสฉันใช้มันเช่นนี้ typeOfContract = Request.QueryString["type"]; ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อประกาศการtypeOfContractระบุบรรทัด: ประเภท 'สตริง' ต้องเป็นประเภทค่าที่ไม่เป็นโมฆะเพื่อใช้เป็นพารามิเตอร์ 'T' ในประเภทหรือวิธีการทั่วไป 'System.Nullable &lt;T&gt;' ความคิดใด ๆ โดยทั่วไปฉันต้องการตรวจสอบให้แน่ใจว่า"type"มีอยู่ในQueryStringก่อนดำเนินการ
136 c#  nullable 

5
รับที่อยู่ IP ของโฮสต์ระยะไกล
ใน ASP.NET มีSystem.Web.HttpRequestclass ซึ่งมีServerVariablesคุณสมบัติที่สามารถให้ที่อยู่ IP จากREMOTE_ADDRมูลค่าทรัพย์สิน อย่างไรก็ตามฉันไม่สามารถหาวิธีที่คล้ายกันเพื่อรับที่อยู่ IP ของโฮสต์ระยะไกลจาก ASP.NET Web API ฉันจะรับที่อยู่ IP ของรีโมตโฮสต์ที่ร้องขอได้อย่างไร

14
Enum ควรเริ่มต้นด้วย 0 หรือ 1 หรือไม่?
ลองนึกภาพฉันได้กำหนด Enum ต่อไปนี้: public enum Status : byte { Inactive = 1, Active = 2, } การปฏิบัติที่ดีที่สุดในการใช้ enum คืออะไร มันควรเริ่มต้นด้วย1เช่นตัวอย่างข้างต้นหรือเริ่มต้นด้วย0(ไม่มีค่าที่ชัดเจน) ดังนี้: public enum Status : byte { Inactive, Active }
136 c#  .net  enums 

5
การสร้าง VS2015 ล้มเหลวโดยไม่มีข้อผิดพลาดกับ Dynamic
ฉันกำลังเขียนการทดสอบหน่วยในโค้ดที่ส่งคืน JSON ประเภทที่ส่งคืนเป็นชนิดไม่ระบุชื่อดังนั้นฉันคิดว่าจะตรวจสอบค่าที่อยู่บนมันฉันแค่โยนวัตถุไปที่ a dynamicเพื่อยืนยัน อย่างไรก็ตามเมื่อฉันทำอย่างนั้นงานสร้างของฉันล้มเหลว แต่ฉันไม่มีข้อความแสดงข้อผิดพลาด ฉันสามารถทำซ้ำสิ่งนี้ด้วยรหัสที่ง่ายมากในโครงการทดสอบหน่วยใหม่: [TestMethod] public void TestMethod1() { var obj = new { someValue = true }; dynamic asDynamic = obj; Assert.IsTrue(asDynamic.someValue); } ดูด้านล่างสำหรับสกรีนช็อตของบิลด์ที่ล้มเหลว งานสร้างสำเร็จเมื่อฉันพูดถึงการยืนยันว่า: ในทางตรงกันข้ามฉันรันโค้ดต่อไปนี้ใน LinqPad 5 เบต้า (ซึ่งใช้คอมไพเลอร์ Roslyn) และไม่มีปัญหา: var obj = new { someValue = true }; dynamic asDynamic = obj; …

7
ติดตั้ง Windows Service ที่สร้างใน Visual Studio
เมื่อฉันสร้างบริการ Windows ใหม่ใน Visual Studio 2010 ฉันจะได้รับข้อความแจ้งว่าใช้ InstallUtil และ net start เพื่อเรียกใช้บริการ ฉันได้ลองขั้นตอนต่อไปนี้แล้ว: สร้างโครงการใหม่ไฟล์ -&gt; ใหม่ -&gt; โครงการ -&gt; บริการ Windows ชื่อโครงการ: TestService สร้างโครงการตามที่เป็นอยู่ (ตัวสร้าง Service1, OnStart, OnStop) พร้อมรับคำสั่งเปิดเรียกใช้"C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ InstallUtil.exe" TestService.exe เรียกTestService เริ่มต้นสุทธิ ผลลัพธ์ของขั้นตอนที่ 4 เรียกใช้การติดตั้งทรานแซคชัน เริ่มต้นขั้นตอนการติดตั้งของการติดตั้ง ดูเนื้อหาของแฟ้มบันทึกสำหรับความคืบหน้าของแอสเซมบลี C: \ Users …

9
GetHashCode แนวทางใน C #
ฉันอ่านในหนังสือ Essential C # 3.0 และ. NET 3.5 ที่: GetHashCode () กลับมาตลอดชีวิตของวัตถุเฉพาะควรคงที่ (ค่าเดียวกัน) แม้ว่าข้อมูลของวัตถุการเปลี่ยนแปลง ในหลายกรณีคุณควรแคชวิธีนี้เพื่อบังคับใช้สิ่งนี้ นี่เป็นแนวทางที่ถูกต้องหรือไม่? ฉันได้ลองใช้บิวด์อินสองตัวใน. NET และพวกเขาก็ไม่ทำตัวแบบนี้
136 c#  .net  hashcode 

7
ในบล็อก“ using” เป็น SqlConnection ปิดคืนหรือยกเว้น?
คำถามแรก: บอกว่าฉันมี using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); string storedProc = "GetData"; SqlCommand command = new SqlCommand(storedProc, connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("@EmployeeID", employeeID)); return (byte[])command.ExecuteScalar(); } การเชื่อมต่อปิดหรือไม่ เพราะในทางเทคนิคเราไม่เคยไปถึงหน้าสุดท้าย}เหมือนreturnก่อนหน้านี้ คำถามที่สอง: ครั้งนี้ฉันมี: try { using (SqlConnection connection = new SqlConnection(connectionString)) { int employeeID = findEmployeeID(); connection.Open(); SqlCommand command = …
136 c#  using  sqlconnection 

6
ฉันจะปิดใช้งานการสนับสนุน C # 6 ใน Visual Studio 2015 ได้อย่างไร
พื้นหลัง เรามีโครงการที่เรากำลังพัฒนาในปี 2015 ด้วยการเปิดใช้งาน C # 6 ซึ่งบางครั้งจำเป็นต้องเปิดโดยนักพัฒนาที่ใช้ VS 2013 โดยไม่มี C # 6 เราไม่มีความตั้งใจที่จะใช้ C # 6 ภายในโซลูชันนี้ (เท่าที่ฉันต้องการ) ปัญหา Visual Studio และ ReSharper แนะนำการสร้างภาษา C # 6 ที่เป็นประโยชน์ซึ่งทำให้การแก้ไขไม่สามารถใช้งานได้ใน Visual Studio รุ่นก่อนหน้าโดยไม่มีการสนับสนุน C # 6 ฉันได้ปิดการใช้งานการสนับสนุน ReSharper C # 6 แล้วแต่ฉันไม่สามารถปิดการใช้งาน / จำกัด คุณสมบัติ C # ในโซลูชันทั้งหมด คำถาม ฉันจะ …

2
นี่เป็นข้อบกพร่องของคอมไพเลอร์ C # หรือไม่?
ฉันกำลังตอบคำถามเกี่ยวกับความเป็นไปได้ของการปิด (อย่างถูกกฎหมาย) การยืดอายุการใช้งานของวัตถุเมื่อฉันพบโค้ดโคเจนที่แปลกประหลาดมากในส่วนของคอมไพเลอร์ C # (4.0 ถ้าสำคัญ) repro ที่สั้นที่สุดที่ฉันสามารถค้นหาได้มีดังต่อไปนี้: สร้างแลมบ์ดาที่จับภาพท้องถิ่นในขณะที่เรียกใช้ วิธีการคงที่ของประเภทที่มี กำหนดผู้รับมอบสิทธิ์อ้างอิงสร้างฟิลด์อินสแตนซ์ของวัตถุที่ประกอบด้วย ผลลัพธ์: คอมไพเลอร์สร้างการปิดวัตถุที่อ้างอิงวัตถุที่สร้างแลมบ์ดาเมื่อไม่มีเหตุผล - เป้าหมาย 'ภายใน' ของผู้รับมอบสิทธิ์เป็นวิธีการคงที่และสมาชิกอินสแตนซ์ของแลมบ์ด้าการสร้างวัตถุไม่จำเป็น ถูก (และไม่) แตะเมื่อผู้รับมอบสิทธิ์ถูกดำเนินการ คอมไพเลอร์ทำหน้าที่เหมือนโปรแกรมเมอร์ที่จับได้thisโดยไม่มีเหตุผล class Foo { private Action _field; public void InstanceMethod() { var capturedVariable = Math.Pow(42, 1); _field = () =&gt; StaticMethod(capturedVariable); } private static void StaticMethod(double arg) { } …

5
JSON.net: วิธีการดีซีเรียลไลซ์โดยไม่ต้องใช้ Constructor เริ่มต้น?
ฉันมีคลาสที่มีคอนสตรัคเตอร์เริ่มต้นและคอนสตรัคเตอร์โอเวอร์โหลดที่ใช้ในชุดพารามิเตอร์ พารามิเตอร์เหล่านี้จับคู่กับเขตข้อมูลบนวัตถุและได้รับมอบหมายในการก่อสร้าง ณ จุดนี้ฉันต้องการตัวสร้างเริ่มต้นสำหรับวัตถุประสงค์อื่น ๆ ดังนั้นฉันต้องการเก็บไว้ถ้าฉันสามารถ ปัญหาของฉัน: ถ้าฉันลบตัวสร้างเริ่มต้นและส่งผ่านในสตริง JSON วัตถุ deserializes อย่างถูกต้องและผ่านในพารามิเตอร์ตัวสร้างโดยไม่มีปัญหาใด ๆ ฉันได้รับวัตถุกลับมาเติมในแบบที่ฉันคาดหวัง อย่างไรก็ตามทันทีที่ฉันเพิ่มนวกรรมิกเริ่มต้นลงในวัตถุเมื่อฉันเรียกJsonConvert.DeserializeObject&lt;Result&gt;(jsontext)คุณสมบัติที่จะไม่บรรจุอีกต่อไป ณ จุดนี้ฉันได้ลองเพิ่มnew JsonSerializerSettings(){CheckAdditionalContent = true}การโทรดีซีเรียลไลเซชั่น ที่ไม่ได้ทำอะไรเลย หมายเหตุอื่น พารามิเตอร์ตัวสร้างตรงกับชื่อของเขตข้อมูลอย่างแน่นอนยกเว้นว่าพารามิเตอร์จะเริ่มต้นด้วยตัวอักษรตัวพิมพ์เล็ก ฉันไม่คิดว่าจะเป็นเช่นนี้เพราะอย่างที่ฉันได้กล่าวไว้การดีซีเรียลไลเซชั่นใช้งานได้ดีโดยไม่มีคอนสตรัคเตอร์เริ่มต้น นี่คือตัวอย่างของการก่อสร้างของฉัน: public Result() { } public Result(int? code, string format, Dictionary&lt;string, string&gt; details = null) { Code = code ?? ERROR_CODE; Format = format; if (details …
136 c#  json  json.net 

14
การใช้ GPU กับ c # [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันพยายามดึงพลังการประมวลผลออกจากกริดมากขึ้น ฉันใช้ cpus / cores ทั้งหมดเป็นไปได้ไหมที่จะใช้ GPU กับ C # มีใครรู้จักห้องสมุดหรือมีโค้ดตัวอย่างบ้างไหม
136 c#  gpu  gpgpu 

7
เหตุใดตัวดำเนินการจึงส่งคืนเท็จเมื่อกำหนดค่าว่าง
สำหรับฉันดูเหมือนว่าตัวisดำเนินการจะไม่สอดคล้องกันเล็กน้อย bool Test() { // Returns false, but should return true. return null is string; } เราคาดหวังว่าnullค่าเป็นของประเภทการอ้างอิงใด ๆ (หรือเป็นโมฆะ) และแน่นอนข้อกำหนดภาษา C # กล่าวถึงบางสิ่งที่สนับสนุนสมมติฐานนี้เช่น (6.1.6 การแปลงอ้างอิงโดยนัย): การแปลงอ้างอิงโดยนัยคือ: ... •จากลิเทอรัลว่างไปเป็นชนิดอ้างอิงใด ๆ คำอธิบาย (7.10.10 ตัวดำเนินการ is) ของตัวisดำเนินการเริ่มต้นด้วยการบอกว่านิพจน์(E is T)จะส่งผลให้เป็นจริงเมื่อมีการแปลงการอ้างอิงจากEเป็นTมีอยู่ แต่จากนั้นผู้เขียนก็ดำเนินการต่อโดยไม่รวมกรณีที่Eเป็นnullตัวอักษรหรือมีnullค่าอย่างชัดเจน . ทำไมพวกเขาถึงทำเช่นนั้น? สำหรับฉันแล้วดูเหมือนว่าขัดต่อสัญชาตญาณ
136 c# 

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