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

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

17
อันไหนดีกว่าคืนค่าหรือพารามิเตอร์ออก
หากเราต้องการรับค่าจากวิธีใดเราสามารถใช้ค่าส่งคืนเช่นนี้ public int GetValue(); หรือ: public void GetValue(out int x); ฉันไม่เข้าใจความแตกต่างระหว่างพวกเขาดังนั้นไม่รู้ว่าอะไรดีกว่า คุณช่วยอธิบายสิ่งนี้ให้ฉันได้ไหม ขอบคุณ.
147 c#  reference 

8
กำลังส่งอาร์กิวเมนต์ไปที่ Background Worker หรือไม่
สมมติว่าฉันต้องการส่งพารามิเตอร์ int ไปยังผู้ทำงานเบื้องหลัง, สิ่งนี้จะสำเร็จได้อย่างไร? private void worker_DoWork(object sender, DoWorkEventArgs e) { } ฉันรู้ว่าเมื่อใดที่นี่คือ worker.RunWorkerAsync (); ฉันไม่เข้าใจวิธีการกำหนดใน worker_DoWork ว่าควรใช้พารามิเตอร์ int


23
การเพิ่มข้อความตัวยึดตำแหน่งลงในกล่องข้อความ
ฉันกำลังมองหาวิธีเพิ่มข้อความตัวยึดตำแหน่งในกล่องข้อความอย่างที่คุณสามารถทำได้ด้วยกล่องข้อความใน html5 คือถ้ากล่องข้อความไม่มีข้อความก็จะเพิ่มข้อความEnter some text hereเมื่อผู้ใช้คลิกที่ข้อความตัวยึดจะหายไปและอนุญาตให้ผู้ใช้ป้อนข้อความของตัวเองและถ้ากล่องข้อความหมดโฟกัสและยังไม่มีข้อความตัวยึดตำแหน่งคือ เพิ่มกลับไปที่กล่องข้อความ
147 c#  wpf  placeholder 

5
C # Thread ปลอดภัยอย่างรวดเร็ว (EST) เคาน์เตอร์
วิธีการขอรับตัวนับเธรดที่ปลอดภัยใน C # ด้วยประสิทธิภาพที่ดีที่สุดที่เป็นไปได้คืออะไร สิ่งนี้ง่ายพอ ๆ กับที่ได้รับ: public static long GetNextValue() { long result; lock (LOCK) { result = COUNTER++; } return result; } แต่มีทางเลือกอื่นเร็วขึ้นหรือไม่

6
การเข้าถึงคุณสมบัติของ MVC จาก Javascript
ฉันมีโมเดลต่อไปนี้ซึ่งรวมอยู่ในโมเดลมุมมองของฉัน public class FloorPlanSettingsModel { public int Id { get; set; } public int? MainFloorPlanId { get; set; } public string ImageDirectory { get; set; } public string ThumbnailDirectory { get; set; } public string IconsDirectory { get; set; } } ฉันจะเข้าถึงหนึ่งในคุณสมบัติข้างต้นจาก Javascript ได้อย่างไร ฉันลองสิ่งนี้ แต่ได้ "ไม่ได้กำหนด" var floorplanSettings = …


20
แอตทริบิวต์ AssemblyVersion ที่ซ้ำกัน
ฉันมีโครงการที่สร้างข้อผิดพลาดต่อไปนี้ในการรวบรวม: ข้อผิดพลาด CS0579: แอตทริบิวต์ซ้ำ 'AssemblyVersion' ซ้ำ ฉันตรวจสอบไฟล์แล้วAssemblyInfo.csและดูเหมือนว่าไม่มีการทำซ้ำที่นั่น ฉันพบบทความนี้ใน MSDNซึ่งเน้นปัญหาที่คล้ายกันและทำตามคำแนะนำในบทความนี้แก้ไขปัญหาได้เช่นกัน ใครสามารถบอกฉันว่าเกิดอะไรขึ้นที่นี่ มันเกิดขึ้นเฉพาะในกรณีที่มีสองโครงการขึ้นไปที่มีคลาสที่มีชื่อเหมือนกันหรือไม่? หรือมันเป็นอย่างอื่น?

10
จะส่งประเภทที่ไม่ระบุตัวตนเป็นพารามิเตอร์ได้อย่างไร
ฉันจะส่งประเภทที่ไม่ระบุชื่อเป็นพารามิเตอร์ไปยังฟังก์ชันอื่น ๆ ได้อย่างไร ลองพิจารณาตัวอย่างนี้: var query = from employee in employees select new { Name = employee.Name, Id = employee.Id }; LogEmployees(query); ตัวแปรqueryที่นี่ไม่มีประเภทที่แข็งแกร่ง ฉันจะกำหนดLogEmployeesฟังก์ชันให้ยอมรับได้อย่างไร? public void LogEmployees (? list) { foreach (? item in list) { } } กล่าวอีกนัยหนึ่งฉันควรใช้อะไรแทน?เครื่องหมาย

4
ส่วนหัวที่กำหนดเองสำหรับคำขอ HttpClient
ฉันจะเพิ่มส่วนหัวที่กำหนดเองในHttpClientคำขอได้อย่างไร ฉันใช้PostAsJsonAsyncวิธีการโพสต์ JSON ส่วนหัวที่กำหนดเองที่ฉันจะต้องเพิ่มคือ "X-Version: 1" นี่คือสิ่งที่ฉันได้ทำไปแล้ว: using (var client = new HttpClient()) { client.BaseAddress = new Uri("https://api.clickatell.com/"); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "xxxxxxxxxxxxxxxxxxxx"); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var response = client.PostAsJsonAsync("rest/message", svm).Result; }

16
คุณสมบัติเทียบกับวิธีการ
คำถามด่วน: คุณตัดสินใจใช้คุณสมบัติ (ใน C #) เมื่อใดและคุณตัดสินใจใช้วิธีการเมื่อใด เรายุ่งอยู่กับการถกเถียงเรื่องนี้และพบว่ามีบางประเด็นที่เป็นที่ถกเถียงกันว่าเราควรใช้คุณสมบัติหรือวิธีการใด ตัวอย่างหนึ่งคือ: public void SetLabel(string text) { Label.Text = text; } ในตัวอย่างLabelคือตัวควบคุมบนเพจ ASPX มีหลักการที่สามารถควบคุมการตัดสินใจ (ในกรณีนี้) ว่าจะทำวิธีนี้หรือคุณสมบัติ ฉันจะยอมรับคำตอบที่กว้างและครอบคลุมที่สุด แต่นั่นก็สัมผัสกับตัวอย่างที่ฉันให้ไว้ด้วย
147 c#  properties  methods 

12
การเรียงแถวในตารางข้อมูล
เรามีสองคอลัมน์ใน a DataTableดังนี้: COL1 COL2 Abc 5 Def 8 Ghi 3 เรากำลังพยายามจัดเรียงสิ่งนี้datatableตามCOL2ลำดับที่ลดลง COL1 COL2 ghi 8 abc 4 def 3 jkl 1 เราลองทำสิ่งนี้: ft.DefaultView.Sort = "COL2 desc"; ft = ft.DefaultView.ToTable(true); แต่โดยไม่ต้องใช้DataViewเราต้องการที่จะจัดเรียงตัวเองไม่ได้DataTableDataView
146 c#  sorting  datatable 

16
เหตุใดการเรียกเมธอดในคลาสที่ได้รับของฉันจึงเรียกเมธอดคลาสพื้นฐาน
พิจารณารหัสนี้: class Program { static void Main(string[] args) { Person person = new Teacher(); person.ShowInfo(); Console.ReadLine(); } } public class Person { public void ShowInfo() { Console.WriteLine("I am Person"); } } public class Teacher : Person { public new void ShowInfo() { Console.WriteLine("I am Teacher"); } } เมื่อฉันเรียกใช้รหัสนี้ผลลัพธ์ต่อไปนี้: ฉันเป็นคน แต่คุณจะเห็นว่ามันเป็นตัวอย่างของการไม่ได้ของTeacher …
146 c#  class  derived-class 

30
Visual Studio 2013 ไม่ค้นพบการทดสอบหน่วย
ฉันมีทางออกง่าย ๆ ใน visual studio 2013 ที่ประกอบด้วยโครงการเว็บหนึ่งโครงการห้องสมุดหนึ่งโครงการและโครงการทดสอบหน่วยหนึ่ง เมื่อฉันเปิดโซลูชันและลองเรียกใช้การทดสอบหน่วยพวกเขาจะไม่ค้นพบด้วย Visual Studio เมื่อต้องการเรียกใช้การทดสอบฉันพยายามไปที่เมนูและเลือกทดสอบ -> เรียกใช้ -> เรียกใช้การทดสอบทั้งหมดหรือโดยการเปิดหน้าต่างทดสอบ explorer โดยวิธีการที่สตูดิโอภาพไม่พบการทดสอบใด ๆ ในการแก้ปัญหา การสร้างโครงการทดสอบหน่วยง่าย ๆ ครั้งแรกและพยายามทำการทดสอบ Visual Studio รู้ว่าค้นพบการทดสอบและฉันสามารถรันได้ จากนั้นถ้าฉันเปิดโซลูชัน Visual Studio ก่อนหน้านี้ฉันจะค้นพบการทดสอบทั้งหมด ฉันพยายามบันทึกโซลูชันของฉัน แต่ปิดและเปิดใหม่โดยไม่ต้องสร้างโครงการทดสอบหน่วยแรกสตูดิโอภาพไม่พบการทดสอบอีกครั้ง นี่เป็นพฤติกรรมที่แปลกมากที่ฉันไม่รู้ว่าทำไมสิ่งนี้ถึงเกิดขึ้น ฉันเคยทำงานคนเดียวในโครงการนี้ซึ่งใช้คอมไพล์คอนโทรลที่รวมเข้ากับรากฐานทีม Visual Studio ปัญหาของ visual studio ไม่พบการทดสอบหน่วยเริ่มต้นเมื่อองค์ประกอบใหม่เข้ามาในโครงการและเมื่อฉันต้องการสร้างโซลูชันใหม่ผ่านทางแหล่งควบคุมออนไลน์ ก่อนหน้านี้การทดสอบทั้งหมดจะถูกค้นพบโดย Visual Studio เสมอ สำหรับการสร้างการทดสอบหน่วยฉันใช้ dll Microsoft.VisualStudio.QualityTools.UnitTestFramework Visual Studio รุ่นของฉันคือ: Microsoft …

7
เหตุใดฉันจึงผ่าน 1 เป็นตัวย่อ แต่ไม่ใช่ตัวแปร int i
ทำไมการเขียนครั้งแรกและครั้งที่สองถึงทำงาน แต่ไม่ใช่ครั้งสุดท้าย มีวิธีที่ฉันสามารถอนุญาตให้ทั้ง 3 คนและตรวจพบว่าเป็น 1, (int) 1 หรือฉันผ่านไปแล้วหรือไม่? และทำไมคนหนึ่งถึงได้รับอนุญาต แต่คนสุดท้าย? การได้รับอนุญาตครั้งที่สอง แต่ไม่ใช่ครั้งสุดท้ายที่พัดใจของฉัน การสาธิตเพื่อแสดงข้อผิดพลาดในการคอมไพล์ using System; class Program { public static void Write(short v) { } static void Main(string[] args) { Write(1);//ok Write((int)1);//ok int i=1; Write(i);//error!? } }

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