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

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


5
คุณสมบัติ C #: จะใช้คุณสมบัติชุดที่กำหนดเองโดยไม่มีฟิลด์ส่วนตัวได้อย่างไร
ฉันต้องการทำสิ่งนี้: public Name { get; set { dosomething(); ??? = value } } เป็นไปได้ไหมที่จะใช้ฟิลด์ส่วนตัวที่สร้างขึ้นโดยอัตโนมัติ หรือจำเป็นต้องใช้วิธีนี้: private string name; public string Name { get { return name; } set { dosomething(); name = value } }
96 c#  properties 

4
คุณกำหนดเป้าหมายไลบรารีคลาส. NET Core หลายเป้าหมายด้วย csproj ได้อย่างไร
เมื่อ. NET Core ยังคงใช้project.jsonรูปแบบคุณสามารถสร้างไลบรารีคลาสที่กำหนดเป้าหมายหลายเฟรมเวิร์ก (เช่น net451, netcoreapp1.0) ตอนนี้รูปแบบโครงการอย่างเป็นทางการกำลังcsprojใช้ MSBuild คุณจะระบุกรอบงานหลายรายการเพื่อกำหนดเป้าหมายได้อย่างไร? ฉันพยายามที่จะมองหานี้จากการตั้งค่าโครงการใน VS2017 แต่ฉันสามารถที่จะกำหนดเป้าหมายเฉพาะกรอบเดียวจากกรอบ .NET หลัก (มันไม่ได้มีรายการอื่น ๆ รุ่น .NET Framework เต็มรูปแบบซึ่งผมไม่ได้ติดตั้ง) :


4
ตัวเริ่มต้นฟิลด์ไม่สามารถอ้างอิงฟิลด์วิธีการหรือคุณสมบัติที่ไม่คงที่
ฉันมีชั้นเรียนและเมื่อฉันพยายามใช้ในชั้นเรียนอื่นฉันได้รับข้อผิดพลาดด้านล่าง using System; using System.Collections.Generic; using System.Linq; namespace MySite { public class Reminders { public Dictionary<TimeSpan, string> TimeSpanText { get; set; } // We are setting the default values using the Costructor public Reminders() { TimeSpanText.Add(TimeSpan.Zero, "None"); TimeSpanText.Add(new TimeSpan(0, 0, 5, 0), "5 minutes before"); TimeSpanText.Add(new TimeSpan(0, 0, 15, 0), …
96 c# 

12
เหตุการณ์ CheckedListBox ใดที่ทริกเกอร์หลังจากตรวจสอบรายการแล้ว
ฉันมี CheckedListBox ที่ฉันต้องการเหตุการณ์หลังจากตรวจสอบรายการเพื่อให้ฉันสามารถใช้ CheckedItems กับสถานะใหม่ได้ เนื่องจาก ItemChecked ถูกเริ่มทำงานก่อนที่จะมีการอัปเดต CheckedItems จึงไม่สามารถใช้งานได้นอกกรอบ ฉันสามารถใช้วิธีการหรือเหตุการณ์ใดเพื่อรับการแจ้งเตือนเมื่อมีการอัปเดต CheckedItems

21
Visual studio รวบรวมได้ดี แต่ยังคงแสดงเส้นสีแดง
ฉันใช้ VS 2012 และใช้งานได้ดีจนกระทั่งฉันเริ่มสังเกตพฤติกรรมตลก ๆ เมื่อฉันเปิดรหัสจะแสดงขีดเส้นใต้สีแดงซึ่งเรามักจะเห็นเมื่อมีข้อผิดพลาดในรหัสของเรา น่าแปลกที่โค้ดรวบรวมได้ดีทั้งหมด ฉันได้ทำการสังเกตต่อไปนี้ซึ่งไม่ปกติเลย ขีดเส้นใต้สีแดงในรหัส ขณะทำความสะอาดหรือสร้างโซลูชันไม่มีข้อผิดพลาด ขีดเส้นใต้สีแดงหายไประยะหนึ่งหลังจากที่ฉันสร้าง / ทำความสะอาดโซลูชัน แต่ในที่สุดก็กลับมา ด้วยเหตุนี้ Intellisense ของฉันจึงหยุดทำงาน ฉันไม่สามารถคลิกขวาที่ส่วนประกอบใด ๆ และไปที่คำจำกัดความของมัน ความคิดใด ๆ ?

7
สร้าง JSON ได้ทันทีด้วย JObject
สำหรับการทดสอบหน่วยของฉันฉันต้องการความสามารถในการสร้างค่า JSON เฉพาะ (ในกรณีนี้บันทึกอัลบั้ม) ที่สามารถใช้เป็นอินพุตสำหรับระบบที่กำลังทดสอบ ฉันมีรหัสต่อไปนี้: var jsonObject = new JObject(); jsonObject.Add("Date", DateTime.Now); jsonObject.Add("Album", "Me Against The World"); jsonObject.Add("Year", 1995); jsonObject.Add("Artist", "2Pac"); มันใช้งานได้ดี แต่ฉันไม่เคยชอบไวยากรณ์ของ "magic string" และต้องการอะไรที่ใกล้เคียงกับไวยากรณ์ของคุณสมบัติ expando ใน JavaScript เช่นนี้: jsonObject.Date = DateTime.Now; jsonObject.Album = "Me Against The World"; jsonObject.Year = 1995; jsonObject.Artist = "2Pac";
96 c#  json  json.net 

7
จะทำให้ Visual Studio ไม่ใส่ {ขึ้นบรรทัดใหม่ได้อย่างไร?
ถ้ามีโค้ดแบบนี้ if(true){ และฉันเพิ่ม } มันถูกเปลี่ยนเป็น if (true) { } แต่ฉันต้องการให้มันอยู่ในรูปแบบ if (true) { } แม้ว่าฉันจะคัดลอกโค้ดที่มีifเช่นนี้ แต่ก็ถูกแปลงเป็นเวอร์ชันที่ยาวขึ้น ป.ล. ฉันเข้าใจว่ามันเป็นมาตรฐาน C ++ และ C # เพื่อใช้เวอร์ชันที่ยาวขึ้น แต่ฉันมาจากมาตรฐานอื่นและฉันใช้เวอร์ชันที่สั้นกว่า ฉันพนันได้เลยว่ามีตัวเลือกฟอร์แมตเตอร์บางตัวที่สามารถปิดหรือเปลี่ยนแปลงได้

9
อะไรแทนที่ WCF ใน. Net Core
ฉันคุ้นเคยกับการสร้างแอปพลิเคชันคอนโซล. Net Framework และเปิดเผยAdd(int x, int y)ฟังก์ชันผ่านบริการ WCF ตั้งแต่เริ่มต้นด้วย Class Library (.Net Framework) จากนั้นฉันใช้แอปพลิเคชันคอนโซลเพื่อพร็อกซีเรียกใช้ฟังก์ชันนี้ภายในเซิร์ฟเวอร์ อย่างไรก็ตามหากฉันใช้ Console App (.Net Core) และ Class Library (.Net Core) System.ServiceModel จะไม่พร้อมใช้งาน ฉันได้ทำ Googling ไปบ้างแล้ว แต่ยังไม่ทราบว่า WCF "แทนที่" อะไรในอินสแตนซ์นี้ ฉันจะแสดงAdd(int x, int y)ฟังก์ชันภายในไลบรารีคลาสไปยังแอปพลิเคชันคอนโซลทั้งหมดภายใน. Net Core ได้อย่างไร ฉันเห็น System.ServiceModel.Web และเนื่องจากนี่เป็นการพยายามข้ามแพลตฟอร์มฉันจึงต้องสร้างบริการ RESTful หรือไม่
96 c#  .net  wcf  service  .net-core 

7
สัญญาณ - การใช้การนับเริ่มต้นคืออะไร?
http://msdn.microsoft.com/en-us/library/system.threading.semaphoreslim.aspx ในการสร้างเซมาฟอร์ฉันต้องระบุจำนวนเริ่มต้นและจำนวนสูงสุด MSDN ระบุว่าการนับเริ่มต้นคือ - จำนวนคำขอเริ่มต้นสำหรับเซมาฟอร์ที่สามารถให้ได้พร้อมกัน แม้ว่าจะระบุว่าจำนวนสูงสุดคือ จำนวนคำขอสูงสุดสำหรับเซมาฟอร์ที่สามารถให้ได้พร้อมกัน ฉันเข้าใจว่าจำนวนสูงสุดคือจำนวนเธรดสูงสุดที่สามารถเข้าถึงทรัพยากรพร้อมกันได้ แต่การใช้การนับเริ่มต้นคืออะไร? ถ้าฉันสร้างเซมาฟอร์โดยมีจำนวนเริ่มต้นเป็น 0 และจำนวนสูงสุดเป็น 2 เธรดพูลเธรดของฉันจะไม่สามารถเข้าถึงทรัพยากรได้ ถ้าฉันตั้งค่าการนับเริ่มต้นเป็น 1 และจำนวนสูงสุดเป็น 2 เธรดพูลเธรดเท่านั้นที่สามารถเข้าถึงทรัพยากรได้ เฉพาะเมื่อฉันตั้งค่าการนับเริ่มต้นและจำนวนสูงสุดเป็น 2 เธรด 2 เธรดเท่านั้นที่สามารถเข้าถึงทรัพยากรได้พร้อมกัน ดังนั้นฉันจึงสับสนจริงๆเกี่ยวกับความสำคัญของการนับเริ่มต้น? SemaphoreSlim semaphoreSlim = new SemaphoreSlim(0, 2); //all threadpool threads wait SemaphoreSlim semaphoreSlim = new SemaphoreSlim(1, 2);//only one thread has access to the resource at …

4
แลมบ์ดาต้นไม้นิพจน์ต้องไม่มีตัวดำเนินการขยายสัญญาณว่าง
คำถาม : บรรทัดprice = co?.price ?? 0,ในรหัสต่อไปนี้ทำให้ฉันมีข้อผิดพลาดข้างต้น แต่ถ้าผมลบ?จากการco.?ทำงานดี ผมพยายามที่จะทำตามตัวอย่างนี้ MSDNที่พวกเขาจะใช้?ในบรรทัดselect new { person.FirstName, PetName = subpet?.Name ?? String.Empty };ดังนั้นจึงดูเหมือนว่าฉันจะต้องเข้าใจเมื่อใช้?กับ??และเมื่อไม่ ข้อผิดพลาด : แลมบ์ดาต้นไม้นิพจน์ต้องไม่มีตัวดำเนินการขยายสัญญาณว่าง public class CustomerOrdersModelView { public string CustomerID { get; set; } public int FY { get; set; } public float? price { get; set; } .... .... } …

3
ตัวตั้งค่าส่วนตัวใน Json.Net
ฉันรู้ว่ามีแอตทริบิวต์ที่จะจัดการกับตัวตั้งค่าส่วนตัว แต่ฉันต้องการให้พฤติกรรมนี้เป็นค่าเริ่มต้นมีวิธีที่จะทำให้สำเร็จหรือไม่ ยกเว้นการปรับแต่งแหล่งที่มา จะดีมากถ้ามีการตั้งค่านี้
96 c#  json.net 

2
อนุญาตให้ใช้องค์ประกอบ configSections เพียงรายการเดียวต่อไฟล์ config และหากมีอยู่ต้องเป็นลูกแรกขององค์ประกอบคอนฟิกูเรชัน root
ฉันกำลังพัฒนาแอปพลิเคชันคอนโซลและเมื่อฉันเรียกใช้ไฟล์. exe ฉันได้รับข้อผิดพลาดต่อไปนี้: system.Configuration.ConfigurationErrorsException: อนุญาตเพียง<configSections>องค์ประกอบเดียวต่อไฟล์กำหนดค่าและหากมีอยู่ต้องเป็นลูกคนแรกของ<configuration>องค์ประกอบรูท นี่คือApp.configไฟล์ของฉัน: <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> </startup> <configSections> <section name="Reva.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <!-- ... --> อย่างไรก็ตามหากฉันลบstartupส่วนต่อไปนี้ออกก็ใช้ได้ดี <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> </startup>

4
Roslyn รวบรวมโค้ดไม่สำเร็จ
หลังจากที่ฉันย้ายโปรเจ็กต์ของฉันจาก VS2013 เป็น VS2015 โปรเจ็กต์จะไม่สร้างอีกต่อไป ข้อผิดพลาดในการคอมไพล์เกิดขึ้นในคำสั่ง LINQ ต่อไปนี้: static void Main(string[] args) { decimal a, b; IEnumerable<dynamic> array = new string[] { "10", "20", "30" }; var result = (from v in array where decimal.TryParse(v, out a) && decimal.TryParse("15", out b) && a <= b // Error here orderby decimal.Parse(v) …
95 c#  .net  linq  roslyn 

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