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

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

2
วิธีการสร้างหลายไดเรกทอรีจากเส้นทางแบบเต็มเดียวใน C #?
หากคุณมีเส้นทางแบบเต็มเช่น: "C:\dir0\dir1\dir2\dir3\dir4\"คุณจะนำมันไปใช้อย่างไรให้ไดเรกทอรีทั้งหมดปรากฏอยู่ได้อย่างไร? มีวิธีการนี้ใน BCL หรือไม่? ถ้าไม่เป็นวิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร?

4
ตัวต่อท้ายที่แท้จริงของไบต์ใน. NET?
ฉันสงสัยว่ามีวิธีใดที่จะประกาศตัวแปร byte ในทางสั้น ๆ เช่นลอยหรือคู่? ผมหมายถึงชอบและ5f 5dแน่นอนว่าฉันสามารถเขียนbyte x = 5ได้ แต่มันค่อนข้างไม่สำคัญหากคุณใช้varกับตัวแปรในตัวเครื่อง
162 c#  .net  value-type 

8
การรวบรวม <T> กับรายการ <T> คุณควรใช้อะไรในส่วนต่อประสานของคุณ
รหัสดูเหมือนว่าด้านล่าง: namespace Test { public interface IMyClass { List&lt;IMyClass&gt; GetList(); } public class MyClass : IMyClass { public List&lt;IMyClass&gt; GetList() { return new List&lt;IMyClass&gt;(); } } } เมื่อฉันเรียกใช้การวิเคราะห์รหัสฉันได้รับคำแนะนำต่อไปนี้ คำเตือน 3 CA1002: Microsoft.Design: เปลี่ยน 'รายการ' ใน 'IMyClass.GetList ()' เพื่อใช้ Collection, ReadOnlyCollection หรือ KeyedCollection ฉันจะแก้ไขสิ่งนี้และวิธีปฏิบัติที่ดีที่นี่ได้อย่างไร

8
ผนวกค่ากับสตริงการสืบค้น
ฉันได้ตั้งค่า URL คล้ายกับรายการด้านล่างในรายการ http://somesite.com/backup/lol.php?id=1&amp;server=4&amp;location=us http://somesite.com/news.php?article=1&amp;lang=en ฉันจัดการเพื่อรับสตริงการสืบค้นโดยใช้รหัสต่อไปนี้: myurl = longurl.Split('?'); NameValueCollection qs = HttpUtility.ParseQueryString(myurl [1]); foreach (string lol in qs) { // results will return } แต่มันส่งกลับเฉพาะพารามิเตอร์เช่น ID , เซิร์ฟเวอร์ , สถานที่และอื่น ๆ ขึ้นอยู่กับ URL ที่ระบุไว้ สิ่งที่ฉันต้องการคือการเพิ่ม / ผนวกค่ากับสตริงการสืบค้นที่มีอยู่ ตัวอย่างเช่นกับ URL: http://somesite.com/backup/index.php?action=login&amp;attempts=1 ฉันต้องการแก้ไขค่าของพารามิเตอร์สตริงการสืบค้น: การกระทำ = login1 พยายาม = 11 อย่างที่คุณเห็นฉันได้ต่อท้าย "1" …

11
รับค่าจาก appsettings.json ใน. net core
ไม่แน่ใจว่าฉันทำอะไรหายไปที่นี่ แต่ฉันไม่สามารถรับค่าจาก appsettings.json ของฉันในแอปพลิเคชัน. net หลักของฉัน ฉันมี appsettings.json ของฉันเป็น: { "AppSettings": { "Version": "One" } } เริ่มต้น: public class Startup { private IConfigurationRoot _configuration; public Startup(IHostingEnvironment env) { _configuration = new ConfigurationBuilder() } public void ConfigureServices(IServiceCollection services) { //Here I setup to read appsettings services.Configure&lt;AppSettings&gt;(_configuration.GetSection("AppSettings")); } } รุ่น: public class …

5
การตรวจสอบ XML กับ XSD ที่อ้างอิงใน C #
ฉันมีไฟล์ XML พร้อมตำแหน่งสคีมาที่ระบุเช่นนี้: xsi:schemaLocation="someurl ..\localSchemaPath.xsd" ฉันต้องการตรวจสอบใน C # Visual Studio เมื่อฉันเปิดไฟล์ตรวจสอบมันกับ schema และแสดงรายการข้อผิดพลาดอย่างสมบูรณ์ อย่างไรก็ตามอย่างใดฉันไม่สามารถตรวจสอบได้โดยอัตโนมัติใน C # โดยไม่ต้องระบุสคีมาเพื่อตรวจสอบเช่น: XmlDocument asset = new XmlDocument(); XmlTextReader schemaReader = new XmlTextReader("relativeSchemaPath"); XmlSchema schema = XmlSchema.Read(schemaReader, SchemaValidationHandler); asset.Schemas.Add(schema); asset.Load(filename); asset.Validate(DocumentValidationHandler); ฉันไม่ควรตรวจสอบกับสคีมาที่ระบุในไฟล์ XML โดยอัตโนมัติหรือไม่ ฉันพลาดอะไรไป
161 c#  xml  xsd 

11
ทำไมคอนสตรัคเตอร์แบบไร้พารามิเตอร์เริ่มหายไปเมื่อคุณสร้างด้วยพารามิเตอร์
ใน C #, C ++ และ Java เมื่อคุณสร้างคอนสตรัคเตอร์ที่รับพารามิเตอร์พารามิเตอร์ไร้ค่าเริ่มต้นจะหายไป ฉันยอมรับข้อเท็จจริงนี้มาโดยตลอด แต่ตอนนี้ฉันเริ่มสงสัยแล้วว่าทำไม อะไรคือสาเหตุของพฤติกรรมนี้? มันเป็นเพียงแค่ "มาตรการความปลอดภัย / คาดเดา" การพูดว่า "ถ้าคุณสร้างคอนสตรัคเตอร์ของคุณเองคุณอาจไม่ต้องการให้สิ่งนี้แฝงตัว" หรือมีเหตุผลทางเทคนิคที่ทำให้คอมไพเลอร์ไม่สามารถเพิ่มได้เมื่อคุณสร้าง Constructor ด้วยตัวเอง?

7
วิธีใช้ __doPostBack ()
ฉันพยายามสร้าง postback แบบ asyncrhonous ใน ASP.NET โดยใช้__doPostBack()แต่ฉันไม่รู้ว่าจะทำอย่างไร ฉันต้องการใช้ JavaScript วานิลลา สิ่งที่ง่ายเหมือนการคลิกปุ่มอาจทำให้__doPostBack()เหตุการณ์เริ่มทำงาน ฉันแค่พยายามที่จะเรียนรู้วิธีการทำงานของกลไก

5
อะไรคือความแตกต่างระหว่าง "กลุ่ม" และ "จับ" ในการแสดงออกปกติ. NET
ฉันสับสนเล็กน้อยเกี่ยวกับความแตกต่างระหว่าง "กลุ่ม" และ "การจับภาพ" เมื่อพูดถึงภาษานิพจน์ปกติของ. NET พิจารณารหัส C # ต่อไปนี้: MatchCollection matches = Regex.Matches("{Q}", @"^\{([A-Z])\}$"); ฉันคาดว่าสิ่งนี้จะส่งผลให้มีการจับตัวเดียวสำหรับตัวอักษร 'Q' แต่ถ้าฉันพิมพ์คุณสมบัติของที่ส่งคืนMatchCollectionฉันเห็น: matches.Count: 1 matches[0].Value: {Q} matches[0].Captures.Count: 1 matches[0].Captures[0].Value: {Q} matches[0].Groups.Count: 2 matches[0].Groups[0].Value: {Q} matches[0].Groups[0].Captures.Count: 1 matches[0].Groups[0].Captures[0].Value: {Q} matches[0].Groups[1].Value: Q matches[0].Groups[1].Captures.Count: 1 matches[0].Groups[1].Captures[0].Value: Q เกิดอะไรขึ้นที่นี่? ฉันเข้าใจว่ายังมีการจับภาพสำหรับการแข่งขันทั้งหมด แต่กลุ่มจะเข้ามาได้อย่างไร และทำไมไม่matches[0].Capturesรวมการจับภาพตัวอักษร 'Q' ด้วย?
161 c#  .net  regex 

11
C #: กำหนดค่าเดียวกันให้กับตัวแปรหลายตัวในคำสั่งเดียว
มีวิธีใดบ้าง (เพิ่งเกิดจากความอยากรู้อยากเห็นเพราะฉันเจอการกำหนดค่าเดียวกันหลาย ๆ ตัวให้กับตัวแปรหลายตัวในวันนี้) ใน C # เพื่อกำหนดหนึ่งค่าให้กับตัวแปรหลายตัวในครั้งเดียว? บางสิ่งบางอย่างตามสายเหล่านี้ (รหัสเทียม): int num1 = 1; int num2 = 1; num1 &amp; num2 = 5; อาจจะไม่ใช่ แต่ฉันคิดว่ามันคุ้มค่าที่จะถามในกรณีที่เป็นไปได้จริง ๆ !
161 c# 

8
สร้างรายการจากสองรายการวัตถุด้วย linq
ฉันมีสถานการณ์ต่อไปนี้ class Person { string Name; int Value; int Change; } List&lt;Person&gt; list1; List&lt;Person&gt; list2; ฉันต้องรวม 2 รายการเข้าด้วยกันList&lt;Person&gt; ในกรณีที่เป็นคนเดียวกันที่บันทึกรวมจะมีชื่อนั้นค่าของบุคคลในรายการ 2 การเปลี่ยนแปลงจะเป็นค่าของ list2 - มูลค่าของ list1 เปลี่ยนเป็น 0 ถ้าไม่ซ้ำกัน
161 c#  linq 

5
หน้าต่างโต้ตอบ C # สามารถโต้ตอบกับรหัสของฉันได้หรือไม่
ใน Visual Studio 2015 หรือใหม่กว่าฉันสามารถเปิด 'หน้าต่างโต้ตอบ C #' และเรียกใช้รหัส: &gt; 5 + 3 8 นั้นน่ารัก. ตอนนี้ฉันจะโต้ตอบโค้ดของฉัน - ชั้นเรียนของฉันได้อย่างไร สมมติว่าฉันมีโครงการเปิดอยู่ &gt; new Cog() (1,5): error CS0246: The type or namespace name 'Cog' could not be found (are you missing a using directive or an assembly reference?)
161 c#  .net  visual-studio  roslyn 

13
สร้างไฟล์. txt หากไม่มีอยู่และหากมีการต่อท้ายบรรทัดใหม่
ฉันต้องการสร้างไฟล์. txt และเขียนลงไปและหากไฟล์นั้นมีอยู่แล้วฉันแค่ต้องการต่อท้ายบรรทัดเพิ่มเติม: string path = @"E:\AppServ\Example.txt"; if (!File.Exists(path)) { File.Create(path); TextWriter tw = new StreamWriter(path); tw.WriteLine("The very first line!"); tw.Close(); } else if (File.Exists(path)) { TextWriter tw = new StreamWriter(path); tw.WriteLine("The next line!"); tw.Close(); } แต่ดูเหมือนว่าบรรทัดแรกจะถูกเขียนทับเสมอ ... ฉันจะหลีกเลี่ยงการเขียนในบรรทัดเดียวกันได้อย่างไร (ฉันใช้สิ่งนี้ในการวนซ้ำ) ฉันรู้ว่ามันค่อนข้างง่าย แต่ฉันไม่เคยใช้WriteLineวิธีการนี้มาก่อน ฉันใหม่โดยสิ้นเชิงกับ C #
161 c#  text-files 

4
การรับรองความถูกต้องโดยใช้โทเค็นใน ASP.NET Core
ฉันทำงานกับแอปพลิเคชัน ASP.NET Core ฉันกำลังพยายามใช้การรับรองความถูกต้องโดยใช้ Token แต่ไม่สามารถหาวิธีใช้ระบบรักษาความปลอดภัยใหม่สำหรับกรณีของฉันได้ ฉันดูตัวอย่างแล้วแต่พวกเขาก็ไม่ได้ช่วยอะไรมากพวกเขาใช้การตรวจสอบความถูกต้องคุกกี้หรือการตรวจสอบภายนอก (GitHub, Microsoft, Twitter) สถานการณ์ของฉันคืออะไร: แอปพลิเคชัน angularjs ควรขอ/tokenชื่อผู้ใช้และรหัสผ่าน URL ที่ผ่าน WebApi ควรอนุญาตผู้ใช้และส่งคืนaccess_tokenซึ่งแอป angularjs จะใช้ในคำขอต่อไปนี้ ฉันได้พบบทความที่ยอดเยี่ยมเกี่ยวกับการใช้สิ่งที่ฉันต้องการใน ASP.NET - Token Based Authentication โดยใช้ ASP.NET Web API 2, Owin และ Identityรุ่นปัจจุบัน แต่ไม่ชัดเจนสำหรับฉันว่าจะทำสิ่งเดียวกันใน ASP.NET Core ได้อย่างไร คำถามของฉันคือ: วิธีการกำหนดค่าแอปพลิเคชัน ASP.NET Core WebApi ให้ทำงานกับการตรวจสอบความถูกต้องด้วยโทเค็น

7
ค้นหา () กับที่ไหน () FirstOrDefault ()
ฉันมักจะเห็นคนที่ใช้Where.FirstOrDefault()ทำการค้นหาและคว้าองค์ประกอบแรก ทำไมไม่ใช้เพียงFind()? มีข้อได้เปรียบอื่น ๆ หรือไม่? ฉันไม่สามารถบอกความแตกต่าง namespace LinqFindVsWhere { class Program { static void Main(string[] args) { List&lt;string&gt; list = new List&lt;string&gt;(); list.AddRange(new string[] { "item1", "item2", "item3", "item4" }); string item2 = list.Find(x =&gt; x == "item2"); Console.WriteLine(item2 == null ? "not found" : "found"); string item3 = list.Where(x …
161 c#  linq  linq-to-objects 

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