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

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

16
ไบต์ + ไบต์ = int ... ทำไม?
ดูรหัส C # นี้: byte x = 1; byte y = 2; byte z = x + y; // ERROR: Cannot implicitly convert type 'int' to 'byte' ผลลัพธ์ของคณิตศาสตร์ใด ๆ ที่ดำเนินการกับประเภทbyte(หรือshort) จะถูกแปลงกลับไปเป็นจำนวนเต็มโดยปริยาย วิธีแก้ปัญหาคือการส่งผลลัพธ์กลับไปที่ไบต์อย่างชัดเจน: byte z = (byte)(x + y); // this works สิ่งที่ฉันสงสัยคือเพราะอะไร มันเป็นสถาปัตยกรรมหรือไม่? ปรัชญา? เรามี: int+ int=int long+ long=long float+ …

22
มีข้อ จำกัด ที่ จำกัด วิธีการทั่วไปของฉันเป็นประเภทตัวเลขหรือไม่?
ทุกคนสามารถบอกฉันว่ามีวิธีที่มี generics เพื่อ จำกัด การโต้แย้งประเภททั่วไปTเพียง: Int16 Int32 Int64 UInt16 UInt32 UInt64 ฉันตระหนักถึงwhereคำหลัก แต่ไม่สามารถหาอินเตอร์เฟซสำหรับเพียงประเภทเหล่านี้ สิ่งที่ต้องการ: static bool IntegerFunction<T>(T value) where T : INumeric
364 c#  generics  constraints 


30
เชื่อมโยง enums กับสตริงใน C #
ฉันรู้ว่าสิ่งต่อไปนี้เป็นไปไม่ได้เพราะประเภทของการแจงนับต้องเป็น int enum GroupTypes { TheGroup = "OEM", TheOtherGroup = "CMB" } จากฐานข้อมูลของฉันฉันได้รับฟิลด์ที่มีรหัสที่ไม่ครอบคลุม( OEMและCMB) ฉันต้องการทำให้ฟิลด์นี้เป็นenumสิ่งที่เข้าใจได้ เพราะถ้าเป้าหมายนั้นสามารถอ่านได้การแก้ปัญหาควรจะสั้น ฉันมีตัวเลือกอื่น ๆ อีกบ้าง?
362 c#  .net 

6
รักษาลำดับด้วย LINQ
ฉันใช้ LINQ กับคำสั่ง Objects ในอาเรย์ที่สั่ง การดำเนินการใดที่ฉันไม่ควรทำเพื่อให้แน่ใจว่าลำดับของอาร์เรย์จะไม่เปลี่ยนแปลง?

4
ทำไมพารามิเตอร์ทางเลือก C # 4 ที่กำหนดไว้ในส่วนต่อประสานไม่ได้ถูกบังคับใช้ในการใช้งานคลาส?
ฉันสังเกตเห็นว่าด้วยพารามิเตอร์ที่เป็นตัวเลือกใน C # 4 หากคุณระบุพารามิเตอร์ที่เป็นตัวเลือกบนอินเทอร์เฟซที่คุณไม่ต้องทำให้พารามิเตอร์นั้นเป็นตัวเลือกในชั้นเรียนการใช้งานใด ๆ : public interface MyInterface { void TestMethod(bool flag = false); } public class MyClass : MyInterface { public void TestMethod(bool flag) { Console.WriteLine(flag); } } และดังนั้นจึง: var obj = new MyClass(); obj.TestMethod(); // compiler error var obj2 = new MyClass() as MyInterface; obj2.TestMethod(); // …

8
รับคีย์พจนานุกรมตามค่า
ฉันจะรับรหัสพจนานุกรมตามค่าใน C # ได้อย่างไร Dictionary<string, string> types = new Dictionary<string, string>() { {"1", "one"}, {"2", "two"}, {"3", "three"} }; ฉันต้องการสิ่งนี้: getByValueKey(string value); getByValueKey("one")"1"จะต้องกลับมา วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? อาจจะ HashTable, SortedLists?
361 c#  dictionary 

9
วิธีรับ URL หน้าปัจจุบันใน MVC 3
ฉันใช้ปลั๊กอินคอมเม้นท์ Facebook ในบล็อกที่ฉันกำลังสร้าง มันมีแท็ก FBXML บางส่วนที่ตีความโดย Javascript ของ Facebook ที่อ้างอิงในหน้านั้น ทั้งหมดนี้ใช้ได้ดี แต่ฉันต้องผ่าน URL ที่ผ่านการรับรองโดยสมบูรณ์ไปยังปลั๊กอิน <div style="width: 900px; margin: auto;"> <div id="fb-root"></div> <fb:comments href="URL HERE" num_posts="10" width="900"></fb:comments> </div> วิธีที่ดีที่สุดในการรับ URL ของหน้าปัจจุบันคืออะไร? URL คำขอ สารละลาย นี่คือรหัสสุดท้ายของการแก้ปัญหาของฉัน: <fb:comments href="@Request.Url.AbsoluteUri" num_posts="15" width="900"></fb:comments>
360 c#  asp.net  asp.net-mvc  razor 

9
เหตุใดจึงใช้ ICollection และไม่ใช่ IEnumerable หรือ List <T> ในหลาย ๆ ความสัมพันธ์ / หลายต่อหลายความสัมพันธ์
ICollection&lt;T&gt;ฉันเห็นมากในบทเรียนที่มีคุณสมบัติเป็นลูกศร นี่เป็นข้อกำหนดที่จำเป็นสำหรับ Entity Framework หรือไม่ ฉันสามารถใช้IEnumerable? อะไรคือวัตถุประสงค์หลักในการใช้งานICollectionแทนIEnumerableหรือแม้กระทั่งList&lt;T&gt;?

3
เครื่องหมายคำถามและตัวดำเนินการ dot คืออะไร หมายถึงใน C # 6.0?
ด้วย C # 6.0 ในตัวอย่าง VS2015 เรามีโอเปอเรเตอร์ใหม่?.ซึ่งสามารถใช้ดังนี้: public class A { string PropertyOfA { get; set; } } ... var a = new A(); var foo = "bar"; if(a?.PropertyOfA != foo) { //somecode } มันทำอะไรกันแน่?
359 c#  operators  c#-6.0 

25
ฉันสามารถเพิ่มเวอร์ชันการสร้างไฟล์โดยอัตโนมัติเมื่อใช้ Visual Studio ได้หรือไม่
ผมเพียงแค่สงสัยว่าฉันจะโดยอัตโนมัติเพิ่มการสร้าง (และรุ่น?) ของไฟล์ของฉันใช้ Visual Studio (2005) ถ้าฉันค้นหาคุณสมบัติการพูดC:\Windows\notepad.exeแท็บเวอร์ชันจะให้ "เวอร์ชันไฟล์: 5.1.2600.2180" ฉันต้องการรับหมายเลขเจ๋ง ๆ เหล่านี้ในรุ่น dll ของฉันด้วยเช่นกันไม่ใช่เวอร์ชัน 1.0.0.0 ซึ่งเราจะต้องเผชิญกับมันมันช่างน่าเบื่อเล็กน้อย ฉันลองบางสิ่งบางอย่าง แต่ดูเหมือนจะไม่ได้ใช้งานนอกกรอบหรือบางทีฉันก็แค่มองผิดที่ (ตามปกติ) ฉันทำงานกับโครงการเว็บเป็นหลัก .... ฉันมองไปที่ทั้งสอง: http://www.codeproject.com/KB/dotnet/Auto_Increment_Version.aspx http://www.codeproject.com/KB/dotnet/build_versioning.aspx และฉันไม่อยากจะเชื่อเลยว่ามันมีความพยายามอย่างมากที่จะทำสิ่งใดสิ่งหนึ่งซึ่งเป็นแนวปฏิบัติมาตรฐาน แก้ไข: มันไม่ทำงานใน VS2005 เท่าที่ฉันสามารถบอกได้ ( http://www.codeproject.com/KB/dotnet/AutoIncrementVersion.aspx )

10
วิธีเริ่มต้นรายการสตริง (List <string>) ด้วยค่าสตริงจำนวนมาก
เป็นไปได้อย่างไรที่จะเริ่มต้น (กับ C # initializer) รายการสตริง? ฉันลองด้วยตัวอย่างด้านล่าง แต่มันไม่ทำงาน List&lt;string&gt; optionList = new List&lt;string&gt; { "AdditionalCardPersonAddressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay" }();
358 c#  string  list 

4
เติม XDocument จาก String
ฉันกำลังทำงานกับสิ่งเล็กน้อยและฉันพยายามคิดออกว่าฉันสามารถโหลด XDocument จากสตริงได้หรือไม่ XDocument.Load()ดูเหมือนว่าจะใช้สตริงที่ส่งผ่านไปเป็นเส้นทางไปยังไฟล์ XML ทางกายภาพ ฉันต้องการลองและข้ามขั้นตอนแรกของการสร้างไฟล์ XML จริงและข้ามไปที่การเติม XDocument ความคิดใด ๆ
358 c#  xml  c#-3.0  linq-to-xml 

7
การจัดการคำเตือนสำหรับการนับ IEnumerable ที่เป็นไปได้หลายรายการ
ในรหัสของฉันจำเป็นต้องใช้IEnumerable&lt;&gt;หลายครั้งจึงได้รับข้อผิดพลาด Resharper ของ "เป็นไปได้หลายการนับIEnumerable" รหัสตัวอย่าง: public List&lt;object&gt; Foo(IEnumerable&lt;object&gt; objects) { if (objects == null || !objects.Any()) throw new ArgumentException(); var firstObject = objects.First(); var list = DoSomeThing(firstObject); var secondList = DoSomeThingElse(objects); list.AddRange(secondList); return list; } ฉันสามารถเปลี่ยนobjectsพารามิเตอร์ให้เป็นListแล้วหลีกเลี่ยงการนับหลายที่เป็นไปได้ แต่จากนั้นฉันไม่ได้รับวัตถุสูงสุดที่ฉันสามารถจัดการได้ สิ่งที่ฉันสามารถทำได้ก็คือการแปลงIEnumerableไปListที่จุดเริ่มต้นของวิธีการ: public List&lt;object&gt; Foo(IEnumerable&lt;object&gt; objects) { var objectList = objects.ToList(); // ... } …

15
วิธีที่มีประสิทธิภาพในการลบช่องว่างทั้งหมดออกจาก String?
ฉันกำลังเรียก REST API และได้รับการตอบกลับ XML มันส่งคืนรายการชื่อพื้นที่ทำงานและฉันกำลังเขียนIsExistingWorkspace()วิธีการอย่างรวดเร็ว เนื่องจากเวิร์กสเปซทั้งหมดประกอบด้วยอักขระที่ต่อเนื่องกันโดยไม่มีช่องว่างฉันจึงคิดว่าวิธีที่ง่ายที่สุดในการค้นหาว่าเวิร์กสเปซที่เฉพาะเจาะจงอยู่ในรายการคือการลบช่องว่างทั้งหมด (รวมถึงบรรทัดใหม่) คำขอ): XML.Contains("&lt;name&gt;" + workspaceName + "&lt;/name&gt;"); ฉันรู้ว่ามันต้องตรงตามตัวพิมพ์ใหญ่ - เล็กและฉันก็พึ่งมัน ฉันต้องการวิธีลบช่องว่างทั้งหมดในสตริงอย่างมีประสิทธิภาพ ฉันรู้ว่า RegEx และ LINQ สามารถทำได้ แต่ฉันเปิดรับความคิดอื่น ๆ ฉันกังวลเกี่ยวกับความเร็วเป็นส่วนใหญ่

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