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

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

12
ไม่สามารถใช้โอเปอเรเตอร์ == กับประเภททั่วไปใน C # ได้หรือไม่
ตามเอกสารของ==ผู้ประกอบการในMSDN , สำหรับประเภทค่าที่กำหนดไว้ล่วงหน้าตัวดำเนินการความเท่าเทียมกัน (==) จะส่งกลับค่าจริงถ้าค่าของตัวถูกดำเนินการเท่ากันเท็จมิฉะนั้น สำหรับชนิดการอ้างอิงอื่นที่ไม่ใช่สตริง == จะส่งกลับค่าจริงถ้าตัวถูกดำเนินการทั้งสองอ้างถึงวัตถุเดียวกัน สำหรับประเภทสตริง == เปรียบเทียบค่าของสตริง ประเภทค่าที่ผู้ใช้กำหนดสามารถโอเวอร์โหลดตัวดำเนินการ == (ดูโอเปอเรเตอร์) ดังนั้นประเภทการอ้างอิงที่ผู้ใช้กำหนดสามารถทำได้ โดยค่าเริ่มต้น == จะทำงานตามที่อธิบายไว้ข้างต้นสำหรับทั้งประเภทการอ้างอิงที่กำหนดไว้ล่วงหน้าและที่ผู้ใช้กำหนด เหตุใดข้อมูลโค้ดนี้จึงไม่สามารถรวบรวมได้ bool Compare<T>(T x, T y) { return x == y; } ฉันได้รับข้อผิดพลาดผู้ประกอบการ '==' ไม่สามารถนำไปใช้กับตัวถูกดำเนินการชนิด 'T' และ 'T' ฉันสงสัยว่าเพราะเท่าที่ฉันเข้าใจตัว==ดำเนินการที่กำหนดไว้ล่วงหน้าสำหรับทุกประเภท? แก้ไข:ขอบคุณทุกคน ตอนแรกฉันไม่ได้สังเกตว่าคำสั่งนั้นเกี่ยวกับประเภทการอ้างอิงเท่านั้น ฉันยังคิดว่าการเปรียบเทียบแบบทีละบิตมีไว้สำหรับค่าทุกประเภทซึ่งตอนนี้ฉันรู้ว่าไม่ถูกต้อง แต่ในกรณีที่ฉันใช้ประเภทอ้างอิงตัว==ดำเนินการจะใช้การเปรียบเทียบการอ้างอิงที่กำหนดไว้ล่วงหน้าหรือจะใช้ตัวดำเนินการรุ่นที่มีการโอเวอร์โหลดของผู้ประกอบการหรือไม่ แก้ไข 2:จากการทดลองและข้อผิดพลาดเราเรียนรู้ว่า==ผู้ประกอบการจะใช้การเปรียบเทียบการอ้างอิงที่กำหนดไว้ล่วงหน้าเมื่อใช้ประเภททั่วไปที่ไม่ จำกัด ที่จริงแล้วคอมไพเลอร์จะใช้วิธีการที่ดีที่สุดที่จะหาอาร์กิวเมนต์ประเภทที่ จำกัด แต่จะไม่ดูเพิ่มเติม ตัวอย่างเช่นรหัสด้านล่างจะพิมพ์ทุกtrueครั้งแม้ว่าTest.test<B>(new B(), new …

11
ฉันจะใช้การสะท้อนกลับเพื่อเรียกใช้วิธีการส่วนตัวได้อย่างไร
มีกลุ่มของวิธีการส่วนตัวในชั้นเรียนของฉันและฉันจำเป็นต้องเรียกวิธีการหนึ่งแบบไดนามิกขึ้นอยู่กับค่าการป้อนข้อมูล ทั้งรหัสการเรียกใช้และวิธีการเป้าหมายอยู่ในอินสแตนซ์เดียวกัน รหัสมีลักษณะดังนี้: MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType); dynMethod.Invoke(this, new object[] { methodParams }); ในกรณีนี้GetMethod()จะไม่ส่งคืนวิธีการส่วนตัว สิ่งที่BindingFlagsผมจะต้องจ่ายให้กับGetMethod()เพื่อที่จะสามารถหาวิธีเอกชน?

30
เกิดข้อผิดพลาดทั่วไปใน GDI +, JPEG Image to MemoryStream
ดูเหมือนว่าจะเป็นข้อผิดพลาดที่น่าอับอายทั่วทั้งเว็บ มากจนฉันไม่สามารถหาคำตอบสำหรับปัญหาของฉันได้เนื่องจากสถานการณ์ของฉันไม่เหมาะสม มีข้อผิดพลาดเกิดขึ้นเมื่อฉันบันทึกรูปภาพไปยังสตรีม ข้อผิดพลาดนี้ทำงานได้อย่างสมบูรณ์แบบด้วย png แต่ให้ข้อผิดพลาดด้านบนกับ jpg และ gif ซึ่งค่อนข้างสับสน ปัญหาที่คล้ายกันส่วนใหญ่เกี่ยวข้องกับการบันทึกภาพไปยังไฟล์โดยไม่ได้รับอนุญาต แดกดันวิธีแก้ปัญหาคือการใช้สตรีมหน่วยความจำขณะที่ฉันทำ .... public static byte[] ConvertImageToByteArray(Image imageToConvert) { using (var ms = new MemoryStream()) { ImageFormat format; switch (imageToConvert.MimeType()) { case "image/png": format = ImageFormat.Png; break; case "image/gif": format = ImageFormat.Gif; break; default: format = ImageFormat.Jpeg; break; } imageToConvert.Save(ms, …
326 c#  gdi+ 

17
การตั้งค่าแหล่งรูปภาพ WPF ในรหัส
ฉันกำลังพยายามตั้งค่าซอร์สของอิมเมจ WPF ในโค้ด รูปภาพถูกฝังเป็นทรัพยากรในโครงการ โดยดูที่ตัวอย่างฉันมาด้วยรหัสด้านล่าง ด้วยเหตุผลบางอย่างมันไม่ทำงาน - ภาพไม่ปรากฏขึ้น ด้วยการแก้ไขข้อบกพร่องฉันจะเห็นว่าสตรีมมีข้อมูลภาพ แล้วมีอะไรผิดปกติ? Assembly asm = Assembly.GetExecutingAssembly(); Stream iconStream = asm.GetManifestResourceStream("SomeImage.png"); PngBitmapDecoder iconDecoder = new PngBitmapDecoder(iconStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); ImageSource iconSource = iconDecoder.Frames[0]; _icon.Source = iconSource; ไอคอนถูกกำหนดบางอย่างดังนี้: <Image x:Name="_icon" Width="16" Height="16" />
325 c#  .net  wpf  image 

28
วิธีที่ง่ายกว่าในการดีบักบริการ Windows
มีวิธีที่ง่ายกว่าในการก้าวไปข้างหน้ารหัสกว่าจะเริ่มบริการผ่านทาง Windows Service Control Manager แล้วแนบตัวดีบักกับเธรดหรือไม่ มันค่อนข้างยุ่งยากและฉันก็สงสัยว่าถ้ามีวิธีที่ตรงไปตรงมามากกว่านี้

16
ไม่สามารถสร้างความสัมพันธ์ที่เชื่อถือได้สำหรับช่องทางที่ปลอดภัยของ SSL / TLS - SOAP
ฉันมีการเรียกใช้บริการเว็บอย่างง่ายที่สร้างโดยแอป windows. NET (C #) 2.0 ผ่านพร็อกซีบริการเว็บที่สร้างโดย Visual Studio สำหรับบริการบนเว็บที่เขียนด้วย C # (2.0) สิ่งนี้ได้ผลเป็นเวลาหลายปีและยังคงทำเช่นนั้นในสถานที่ที่เป็นที่รู้จัก การติดตั้งใหม่ที่ไซต์ใหม่กำลังประสบปัญหา เมื่อพยายามที่จะเรียกใช้บริการเว็บมันล้มเหลวด้วยข้อความว่า: ไม่สามารถสร้างความสัมพันธ์ที่เชื่อถือได้สำหรับช่องทางที่ปลอดภัยของ SSL / TLS URL ของบริการบนเว็บใช้ SSL (https: //) - แต่มันใช้งานได้เป็นเวลานาน (และยังคงทำเช่นนั้น) จากที่อื่น ๆ ฉันจะมองที่ไหน นี่อาจเป็นปัญหาด้านความปลอดภัยระหว่าง Windows และ. NET ที่ไม่ซ้ำกับการติดตั้งนี้หรือไม่? ถ้าเป็นเช่นนั้นฉันจะตั้งค่าความสัมพันธ์ที่เชื่อถือได้ที่ไหน ฉันหลงทาง!
325 c#  .net  ssl  trust 

7
C # Java HashMap เทียบเท่า
การมาจากโลกของ Java สู่ C # หนึ่งจะเทียบเท่า HashMap หรือไม่? ถ้าไม่ใช่คุณจะแนะนำอะไร
325 c#  java  hashmap 

7
Entity Framework Timeouts
ฉันได้รับไทม์เอาต์โดยใช้ Entity Framework (EF) เมื่อใช้การนำเข้าฟังก์ชั่นที่ใช้เวลาดำเนินการมากกว่า 30 วินาที ฉันลองสิ่งต่อไปนี้และไม่สามารถแก้ไขปัญหานี้ได้: ฉันเพิ่มDefault Command Timeout=300000สตริงการเชื่อมต่อในApp.Configไฟล์ในโครงการที่มีไฟล์ EDMX เป็นข้อเสนอแนะที่นี่ นี่คือลักษณะของสตริงการเชื่อมต่อของฉัน: <add name="MyEntityConnectionString" connectionString="metadata=res://*/MyEntities.csdl|res://*/MyEntities.ssdl| res://*/MyEntities.msl; provider=System.Data.SqlClient;provider connection string=" Data Source=trekdevbox;Initial Catalog=StarTrekDatabase; Persist Security Info=True;User ID=JamesTKirk;Password=IsFriendsWithSpock; MultipleActiveResultSets=True;Default Command Timeout=300000;"" providerName="System.Data.EntityClient" /> ฉันพยายามตั้งค่า CommandTimeout ในที่เก็บของฉันโดยตรงเช่น: private TrekEntities context = new TrekEntities(); public IEnumerable<TrekMatches> GetKirksFriends() { this.context.CommandTimeout = 180; return …

8
ฉันจะข้ามการวนซ้ำของ foreach ได้อย่างไร
ใน Perl ฉันสามารถข้ามการวนซ้ำ foreach (หรือวนซ้ำใด ๆ ) ด้วยnext;คำสั่ง มีวิธีข้ามการทำซ้ำและข้ามไปยังลูปถัดไปใน C # หรือไม่ foreach (int number in numbers) { if (number < 0) { // What goes here to skip over the loop? } // otherwise process number }
324 c#  .net  loops 

10
ฉันจะได้รับวันสุดท้ายของเดือนได้อย่างไร
ฉันจะหาวันสุดท้ายของเดือนใน C # ได้อย่างไร ตัวอย่างเช่นหากฉันมีวันที่ 03/08/1980 ฉันจะได้รับวันสุดท้ายของเดือนที่ 8 (ในกรณีนี้ 31) ได้อย่างไร
324 c#  .net  datetime 


30
หลักฐานง่าย ๆ ที่ GUID นั้นไม่เหมือนใคร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันต้องการพิสูจน์ว่า GUID นั้นไม่เหมือนกันในโปรแกรมทดสอบอย่างง่าย ฉันคาดว่ารหัสต่อไปนี้จะทำงานเป็นเวลาหลายชั่วโมง แต่มันไม่ทำงาน ฉันจะทำให้มันทำงานได้อย่างไร BigInteger begin = new BigInteger((long)0); BigInteger end = new BigInteger("340282366920938463463374607431768211456",10); //2^128 for(begin; begin<end; begin++) Console.WriteLine(System.Guid.NewGuid().ToString()); ฉันใช้ C #
323 c#  guid 

10
ตั้งค่าคุณสมบัติวัตถุโดยใช้การสะท้อน
มีวิธีใน C # ที่ฉันสามารถใช้การสะท้อนเพื่อตั้งค่าคุณสมบัติวัตถุหรือไม่ Ex: MyObject obj = new MyObject(); obj.Name = "Value"; ฉันต้องการตั้งค่าobj.Nameด้วยการสะท้อน สิ่งที่ต้องการ: Reflection.SetProperty(obj, "Name") = "Value"; มีวิธีทำเช่นนี้หรือไม่?

11
ทำไมเราต้องใช้การชกมวยและการเลิกทำกล่องใน C #
ทำไมเราต้องใช้การชกมวยและการเลิกทำกล่องใน C # ฉันรู้ว่ามวยและ unboxing คืออะไร แต่ฉันไม่สามารถเข้าใจการใช้งานจริงของมัน ทำไมและที่ไหนฉันจึงควรใช้ short s = 25; object objshort = s; //Boxing short anothershort = (short)objshort; //Unboxing
323 c#  .net  boxing 

30
มุมที่แปลกที่สุดที่คุณเห็นใน C # หรือ. NET คืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน9 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันรวบรวมเคสมุมสองสามอันและของเล่นพัฒนาสมองและต้องการรับฟังเพิ่มเติมเสมอ หน้านี้ครอบคลุมเฉพาะบิตและบ็อตภาษา C # จริงๆ แต่ฉันก็พบว่าสิ่งที่เป็นคอร์. NET ก็น่าสนใจเช่นกัน ตัวอย่างเช่นนี่คือสิ่งที่ไม่ได้อยู่ในหน้าเว็บ แต่ฉันพบสิ่งที่เหลือเชื่อ: string x = new string(new char[0]); string y = new string(new char[0]); Console.WriteLine(object.ReferenceEquals(x, y)); ฉันคาดว่าการพิมพ์ False - หลังจากทั้งหมด "ใหม่" (ด้วยประเภทการอ้างอิง) จะสร้างวัตถุใหม่เสมอใช่ไหม รายละเอียดสำหรับทั้ง C # และ CLI ระบุว่าควรทำ ไม่ใช่ในกรณีนี้โดยเฉพาะ …
322 c#  .net 

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