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

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

19
หลักการตั้งชื่อ - ขีดล่างในตัวแปร C ++ และ C #
เป็นเรื่องปกติที่จะเห็น_varชื่อตัวแปรในฟิลด์คลาส ขีดล่างหมายถึงอะไร มีการอ้างอิงสำหรับอนุสัญญาการตั้งชื่อพิเศษเหล่านี้ทั้งหมดหรือไม่?

4
จะเขียนไฟล์ JSON ใน C # ได้อย่างไร?
ฉันต้องเขียนข้อมูลต่อไปนี้ลงในไฟล์ข้อความโดยใช้รูปแบบ JSON ใน C # วงเล็บมีความสำคัญสำหรับการเป็นรูปแบบ JSON ที่ถูกต้อง [ { "Id": 1, "SSN": 123, "Message": "whatever" }, { "Id": 2, "SSN": 125, "Message": "whatever" } ] นี่คือคลาสโมเดลของฉัน: public class data { public int Id { get; set; } public int SSN { get; set; } public string Message { get; …

12
ตรวจสอบว่ารายการมีองค์ประกอบที่มีสตริงและรับองค์ประกอบนั้น
ในขณะที่ค้นหาคำตอบสำหรับคำถามนี้ฉันพบคนที่คล้ายกันโดยใช้ LINQ แต่ฉันไม่สามารถเข้าใจพวกเขาได้อย่างสมบูรณ์ (และใช้พวกเขา) เนื่องจากฉันไม่คุ้นเคย สิ่งที่ฉันต้องการโดยพื้นฐานคือ: ตรวจสอบว่าองค์ประกอบใด ๆ ของรายการมีสตริงเฉพาะ ถ้าเป็นเช่นนั้นรับองค์ประกอบนั้น ฉันไม่รู้จะทำอย่างไร สิ่งที่ฉันสามารถทำได้คือ (ไม่ทำงานแน่นอน): if (myList.Contains(myString)) string element = myList.ElementAt(myList.IndexOf(myString)); ฉันรู้ว่าทำไมมันไม่ทำงาน: myList.Contains()ไม่ส่งคืนtrueเนื่องจากจะตรวจสอบว่าองค์ประกอบทั้งหมดของรายการตรงกับสตริงที่ฉันระบุ myList.IndexOf() จะไม่พบสิ่งที่เกิดขึ้นเนื่องจากเป็นกรณีอีกครั้งมันจะตรวจสอบองค์ประกอบที่ตรงกับสตริง ยังฉันไม่มีเงื่อนงำวิธีการแก้ปัญหานี้ แต่ฉันคิดว่าฉันจะต้องใช้ LINQ ตามที่แนะนำในคำถามที่คล้ายกันเพื่อเหมือง ที่ถูกกล่าวว่าถ้าเป็นกรณีที่นี่ฉันต้องการให้ผู้ตอบเพื่ออธิบายการใช้งาน LINQ ในตัวอย่างของพวกเขา (ดังที่ฉันบอกว่าฉันไม่ได้ใส่ใจกับมันในเวลาที่ฉันใช้ C #) ขอบคุณล่วงหน้าพวก (และ gals?) แก้ไข: ฉันได้มาด้วยวิธีการแก้ปัญหา; เพียงแค่วนดูรายการตรวจสอบว่าองค์ประกอบปัจจุบันมีสตริงและจากนั้นตั้งค่าสตริงเท่ากับองค์ประกอบปัจจุบัน ฉันสงสัยว่ามีวิธีที่มีประสิทธิภาพมากกว่านี้หรือไม่? string myString = "bla"; string element = ""; for (int …
146 c#  .net  linq  list  contains 

8
เหตุใดความยาวของสตริงนี้จึงยาวเกินจำนวนอักขระในนั้น
รหัสนี้: string a = "abc"; string b = "A𠈓C"; Console.WriteLine("Length a = {0}", a.Length); Console.WriteLine("Length b = {0}", b.Length); เอาท์พุท: Length a = 3 Length b = 4 ทำไม? สิ่งเดียวที่ฉันจินตนาการได้คือตัวอักษรจีนมีความยาว 2 ไบต์และ.Lengthวิธีคืนค่าจำนวนไบต์

17
การผสม C # & VB ในโครงการเดียวกัน
คุณสามารถผสม vb และ c # ไฟล์ในโครงการเดียวกันสำหรับไลบรารีคลาสได้หรือไม่ มีการตั้งค่าบางอย่างที่ทำให้เป็นไปได้หรือไม่? ฉันพยายามและไม่มี intellisense ทำงานค่อนข้างถูกต้องถึงแม้ว่าคอมไพเลอร์พื้นหลังดูเหมือนว่าจะจัดการได้ดีพอ (นอกเหนือจากความจริงที่ว่าฉันมี 2 คลาสในเนมสเปซเดียวกันที่มีชื่อเดียวกันและไม่บ่น) เราพยายามแปลงจาก VB เป็น C # แต่ยังไม่เสร็จสิ้นการแปลงรหัสทั้งหมด ฉันมีรหัสใหม่ที่ฉันต้องเขียน แต่ไม่ต้องการสร้างโครงการใหม่เพียงเพื่อมัน
145 c#  vb.net 

8
ทำไมอยู่ที่ไหนและเลือกดีกว่าเพียงแค่เลือก?
ฉันมีชั้นเรียนเช่นนี้ public class MyClass { public int Value { get; set; } public bool IsValid { get; set; } } อันที่จริงแล้วมันมีขนาดใหญ่กว่า แต่สิ่งนี้ทำให้เกิดปัญหาขึ้นอีกครั้ง ฉันต้องการได้ผลรวมของValueซึ่งเป็นกรณีที่ถูกต้อง จนถึงตอนนี้ฉันได้พบสองวิธีนี้ คนแรกคือ: int result = myCollection.Where(mc => mc.IsValid).Select(mc => mc.Value).Sum(); อย่างไรก็ตามอันที่สองคือ: int result = myCollection.Select(mc => mc.IsValid ? mc.Value : 0).Sum(); ฉันต้องการวิธีที่มีประสิทธิภาพที่สุด ตอนแรกฉันคิดว่าอันที่สองจะมีประสิทธิภาพมากกว่า จากนั้นส่วนทางทฤษฎีของฉันเริ่มไป "อืม, อันหนึ่งคือ O …
145 c#  linq 

12
EntityType ไม่มีข้อผิดพลาดที่กำหนดคีย์
ควบคุม: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcApplication1.Models; using System.ComponentModel.DataAnnotations.Schema; namespace MvcApplication1.Controllers { public class studentsController : Controller { // // GET: /students/ public ActionResult details() { int id = 16; studentContext std = new studentContext(); student first = std.details.Single(m => m.RollNo == id); return …

19
ไม่รู้จัก Namespace (แม้ว่าจะอยู่ที่นั่น)
ฉันได้รับข้อผิดพลาดนี้: ไม่พบประเภทหรือชื่อเนมสเปซ 'AutoMapper' (คุณพลาดการใช้ไดเรกทีฟหรือการอ้างอิงแอสเซมบลีหรือไม่) สิ่งที่ตลกคือฉันมีการอ้างอิงในโครงการของฉันอยู่แล้ว: และนี่คือรหัสของฉัน: using System.Collections.Generic; using DataContract; using SelectorDAL; using AutoMapper; namespace SpecimenSelect { public class SpecimenSelect : ISpecimenSelect { public SpecimenSelect() { SetupMaps(); } private static void SetupMaps() { Mapper.CreateMap<SpecimenDetail, SpecimenDetailContract>(); } สิ่งประหลาดอื่น ๆ คือฉันมีสองโครงการอื่น ๆ ในการแก้ปัญหาของฉันที่ทั้งสองใช้ AutoMapper และกำลังอ้างอิงไฟล์ AutoMapper.dll เดียวกันแน่นอน พวกเขาทั้งสองทำงานได้ดีอย่างสมบูรณ์ นี่คือภาพหน้าจอของหนึ่ง: และนี่คือรหัสนั้น (ที่รวบรวมได้ดี): using …
145 c#  reference 

8
ตรวจสอบว่าอาร์เรย์เป็นชุดย่อยของอีกชุดหรือไม่
ความคิดเกี่ยวกับวิธีการตรวจสอบว่ารายการนั้นเป็นส่วนย่อยของอีก โดยเฉพาะฉันมี List<double> t1 = new List<double> { 1, 3, 5 }; List<double> t2 = new List<double> { 1, 5 }; วิธีตรวจสอบว่า t2 เป็นชุดย่อยของ t1 โดยใช้ LINQ อย่างไร
145 c#  list  linq  subset 

5
C # Entity-Framework: ฉันจะรวม. Find และ .Include บน Model Object ได้อย่างไร
ฉันกำลังทำแบบฝึกหัดฝึก mvcmusicstore ฉันสังเกตเห็นบางอย่างเมื่อสร้างนั่งร้านสำหรับตัวจัดการอัลบั้ม (เพิ่มการลบการแก้ไข) ฉันต้องการเขียนโค้ดอย่างหรูหราดังนั้นฉันกำลังมองหาวิธีการเขียนที่สะอาด FYI ฉันกำลังทำให้ร้านค้าเป็นแบบทั่วไปมากขึ้น: อัลบั้ม = รายการ ประเภท = หมวดหมู่ ศิลปิน = ยี่ห้อ นี่คือวิธีดึงดัชนี (สร้างโดย MVC): var items = db.Items.Include(i => i.Category).Include(i => i.Brand); นี่คือวิธีการดึงรายการออก: Item item = db.Items.Find(id); คนแรกนำกลับรายการทั้งหมดและเติมหมวดหมู่และรูปแบบแบรนด์ในรูปแบบรายการ อันที่สองไม่ได้เติมหมวดหมู่และยี่ห้อ ฉันจะเขียนอันที่สองเพื่อค้นหาและเติมค่าอะไรเข้าไปข้างใน (โดยเฉพาะอย่างยิ่งใน 1 บรรทัด) ... ในทางทฤษฎี - สิ่งที่ชอบ: Item item = db.Items.Find(id).Include(i => i.Category).Include(i => i.Brand);

10
การแทนที่ฟิลด์หรือคุณสมบัติในคลาสย่อย
ฉันมีคลาสฐานนามธรรมและฉันต้องการประกาศเขตข้อมูลหรือคุณสมบัติที่จะมีค่าแตกต่างกันในแต่ละคลาสที่สืบทอดจากคลาสพาเรนต์นี้ ฉันต้องการกำหนดใน baseclass เพื่อให้ฉันสามารถอ้างอิงได้ในวิธีการเรียนฐาน - ตัวอย่างเช่นการเอาชนะ ToString จะพูดว่า "วัตถุนี้เป็นประเภททรัพย์สิน / เขต " ฉันมีสามวิธีที่ฉันสามารถเห็นการทำเช่นนี้ แต่ฉันสงสัยว่า - วิธีที่ดีที่สุดหรือยอมรับในการทำเช่นนี้คืออะไร? คำถามมือใหม่ขออภัย ตัวเลือกที่ 1: ใช้คุณสมบัตินามธรรมและแทนที่บนคลาสที่สืบทอด ประโยชน์ที่ได้รับจากการบังคับใช้ (คุณต้องลบล้าง) และสะอาด แต่มันรู้สึกผิดเล็กน้อยที่จะส่งคืนค่ารหัสฮาร์ดโค้ดแทนการห่อหุ้มฟิลด์และเป็นโค้ดสองสามบรรทัดแทนที่จะเป็นเพียงฟิลด์ ฉันยังต้องประกาศร่างสำหรับ "ชุด" แต่มันมีความสำคัญน้อยกว่า (และอาจมีวิธีที่จะหลีกเลี่ยงสิ่งที่ฉันไม่ทราบ) abstract class Father { abstract public int MyInt { get; set;} } class Son : Father { public override int MyInt { …
145 c#  properties  field 


10
แอ็พพลิเคชันคอนโซล .NET เป็นบริการ Windows
ฉันมีแอปพลิเคชั่นคอนโซลและต้องการเรียกใช้เป็นบริการของ Windows VS2010 มีเท็มเพลตโครงการที่อนุญาตให้แนบโครงการคอนโซลและสร้างบริการ Windows ฉันไม่ต้องการเพิ่มโครงการบริการที่แยกออกจากกันและหากเป็นไปได้ให้รวมรหัสบริการลงในคอนโซลแอปพลิเคชันเพื่อให้แอปพลิเคชันคอนโซลเป็นหนึ่งโครงการที่สามารถเรียกใช้เป็นแอปพลิเคชันคอนโซลหรือบริการ windows ได้ อาจมีคนแนะนำคลาสไลบรารีหรือโค้ดขนาดสั้นที่สามารถแปลงแอปพลิเคชัน c # console เป็นบริการได้อย่างรวดเร็วและง่ายดาย?

9
คุณสมบัติการตั้งค่าเริ่มต้นถูกเก็บไว้ที่ไหน
ฉันคิดว่าฉันรู้เรื่องนี้ แต่วันนี้ฉันได้รับการพิสูจน์ผิด - อีกครั้ง ใช้ VS2008, .NET 3.5 และ C # ฉันเพิ่มการตั้งค่าผู้ใช้ในแท็บการตั้งค่าคุณสมบัติด้วยค่าเริ่มต้นจากนั้นอ่านการใช้รหัสนี้: myTextBox.Text = Properties.Settings.Default.MyStringProperty; จากนั้นหลังจากที่ผู้ใช้แก้ไขค่าในกล่องโต้ตอบตัวเลือกฉันบันทึกมันเช่นนี้: Properties.Settings.Default.MyStringProperty = myTextBox.Text; Properties.Settings.Default.Save(); คำถามของฉันคือที่ไหนค่าใหม่นี้ถูกบันทึกไว้ที่ไหน? ไฟล์ MyApp.exe.config ในไดเรกทอรีที่ปฏิบัติการไม่ได้รับการปรับปรุง แต่ยังคงมีค่าเริ่มต้น นอกจากนี้เท่าที่ฉันสามารถบอกได้ว่าไม่มีไฟล์อื่นในไดเรกทอรีนั้นที่ได้รับการอัปเดต! อย่างไรก็ตามเมื่อโปรแกรมอ่านค่ากลับมามันจะได้รับค่าที่เปลี่ยนแปลงดังนั้นฉันจึงรู้ว่ามันบันทึกไว้ที่ใดที่หนึ่ง ... นี่ไม่ใช่แค่วิชาการฉันต้องสามารถแก้ไขค่าด้วยตนเองในเช้าวันนี้และทำให้ตัวเองนิ่งงันเมื่อฉันไม่พบสิ่งที่เปลี่ยนแปลง
145 c#  .net  settings 

12
การจัดการเหตุการณ์การปิดหน้าต่างด้วย WPF / MVVM Light Toolkit
ฉันต้องการจัดการ Closingกิจกรรม (เมื่อผู้ใช้คลิกปุ่ม 'X' ด้านขวาบน) ของหน้าต่างของฉันเพื่อแสดงข้อความยืนยันหรือ / และยกเลิกการปิดท้าย ฉันรู้วิธีการทำเช่นนี้ในโค้ด - เบื้องหลัง: สมัครสมาชิกกับClosingเหตุการณ์ของหน้าต่างจากนั้นใช้CancelEventArgs.Cancelคุณสมบัติ แต่ฉันใช้ MVVM ฉันไม่แน่ใจว่ามันเป็นแนวทางที่ดี ฉันคิดว่าวิธีการที่ดีคือการผูกClosingกิจกรรมไว้Commandใน ViewModel ของฉัน ฉันลองแล้ว: <i:Interaction.Triggers> <i:EventTrigger EventName="Closing"> <cmd:EventToCommand Command="{Binding CloseCommand}" /> </i:EventTrigger> </i:Interaction.Triggers> ด้วยการเชื่อมโยงRelayCommandใน ViewModel ของฉัน แต่มันไม่ทำงาน (รหัสของคำสั่งไม่ได้ถูกเรียกใช้)
145 c#  wpf  xaml  mvvm  mvvm-light 

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