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

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

4
ข้อผิดพลาดในการเรียกคอมไพเลอร์ Ambiguous - เมธอดที่ไม่ระบุชื่อและกลุ่มวิธีการที่มี Func <> หรือ Action
ฉันมีสถานการณ์ที่ฉันต้องการใช้ไวยากรณ์กลุ่มวิธีแทนที่จะใช้วิธีการที่ไม่ระบุชื่อ (หรือไวยากรณ์แลมบ์ดา) สำหรับการเรียกใช้ฟังก์ชัน ฟังก์ชั่นนี้มีสองโอเวอร์โหลดหนึ่งที่ใช้เวลาอีกอันหนึ่งใช้Actionเวลา a Func&lt;string&gt;. ฉันสามารถเรียกสองโอเวอร์โหลดได้อย่างมีความสุขโดยใช้วิธีการที่ไม่ระบุชื่อ (หรือไวยากรณ์แลมบ์ดา) แต่ได้รับข้อผิดพลาดของคอมไพเลอร์ของการเรียกใช้ที่ไม่ชัดเจนหากฉันใช้ไวยากรณ์กลุ่มวิธีการ ฉันสามารถแก้ปัญหาได้โดยการแคสต์อย่างชัดเจนไปยังActionหรือFunc&lt;string&gt;แต่ไม่คิดว่าสิ่งนี้จะจำเป็น ใครช่วยอธิบายได้ไหมว่าทำไมต้องมีการแคสต์อย่างชัดเจน ตัวอย่างโค้ดด้านล่าง class Program { static void Main(string[] args) { ClassWithSimpleMethods classWithSimpleMethods = new ClassWithSimpleMethods(); ClassWithDelegateMethods classWithDelegateMethods = new ClassWithDelegateMethods(); // These both compile (lambda syntax) classWithDelegateMethods.Method(() =&gt; classWithSimpleMethods.GetString()); classWithDelegateMethods.Method(() =&gt; classWithSimpleMethods.DoNothing()); // These also compile (method group with explicit …
102 c#  delegates 


2
บริการ WCF RIA คืออะไร?
ฉันเกลียดไซต์ของ MSDN สำหรับบริการ WCF RIA มันไม่ได้บอกว่ามันคืออะไรบอกเพียงว่ามันทำอะไร มันบอกว่ามันสามารถบรรลุอะไรได้ แต่ไม่ได้บอกว่าทำไมฉันถึงต้องการมัน ตัวอย่างเช่น: "ปัญหาที่พบบ่อยในการพัฒนาโซลูชัน RIA ระดับ n คือการประสานตรรกะของแอปพลิเคชันระหว่างระดับกลางและระดับการนำเสนอ" มันไม่ได้มีความหมายมากสำหรับฉัน "บริการ RIA แก้ปัญหานี้ได้โดยจัดเตรียมส่วนประกอบกรอบงานเครื่องมือและบริการที่ทำให้ตรรกะของแอปพลิเคชันบนเซิร์ฟเวอร์พร้อมใช้งานสำหรับไคลเอนต์ RIA โดยไม่ต้องให้คุณทำซ้ำตรรกะการเขียนโปรแกรมนั้นด้วยตนเองคุณสามารถสร้างไคลเอ็นต์ RIA ที่ตระหนักถึงกฎทางธุรกิจ และทราบว่าไคลเอ็นต์จะได้รับการอัปเดตโดยอัตโนมัติด้วยตรรกะระดับกลางล่าสุดทุกครั้งที่มีการรวบรวมโซลูชันใหม่ " มันดาวน์โหลด DLL จากเซิร์ฟเวอร์หรือไม่? เป็นข้อมูลเมตาที่อธิบายกฎสำหรับข้อมูลหรือไม่ แล้วมันคืออะไร? เป็นเพียงส่วนเสริม VS 2010 สำหรับ RAD หรือไม่? หรือเป็นเทคโนโลยีที่อยู่ด้านบนของ WCF หรืออยู่ข้างใต้หรืออะไร? มันอยู่ที่ไหน? ด้วยข้อมูลกับเซิร์ฟเวอร์คืออะไร? ฉันขอขอบคุณหากคุณสามารถสรุปเรื่องนี้ให้ฉันได้โปรด
102 c#  .net  wcf  ria 

7
วิธีสร้างภาษาใหม่สำหรับใช้ใน Visual Studio
ฉันต้องการเขียนภาษาเทมเพลตใหม่และฉันต้องการให้ Visual Studio "สนับสนุน" สิ่งที่ฉันต้องรู้คือ: ฉันจะแยกวิเคราะห์ภาษาใหม่ของฉันได้อย่างไร ด้วยภาษาเทมเพลตใหม่ของฉันฉันจะแปลเป็น HTML ได้อย่างไร ตอนนี้ฉันกำลังใช้นิพจน์ทั่วไปเพื่อแยกวิเคราะห์โทเค็นด้วยโทเค็น แต่ฉันไม่คิดว่าสิ่งนี้จะปรับขนาดได้ดีนักเพราะภาษาซับซ้อนขึ้นและไม่มีการตรวจสอบข้อผิดพลาด ฉันเคยได้ยินเกี่ยวกับ ANTLR แต่ไม่เคยใช้เลย นั่นจะเป็นเครื่องมือที่เหมาะสมสำหรับงานนี้หรืออาจจะมีอะไรที่ง่ายกว่านี้? ตามหลักการแล้วฉันต้องการส่งข้อผิดพลาดทางไวยากรณ์ไปยังหน้าต่างข้อผิดพลาดพร้อมข้อมูลให้มากที่สุด (บรรทัด # ประเภทของข้อผิดพลาด) เหมือนกับภาษาอื่น ๆ ฉันจะสร้างประเภทไฟล์ใหม่สำหรับ Visual Studio ได้อย่างไร ฉันจะเน้นไวยากรณ์ได้อย่างไร ฉันสามารถใช้ตัวแยกวิเคราะห์เดียวกันกับที่ฉันสร้างในขั้นตอนที่ 1 ได้หรือไม่หรือสิ่งนี้แตกต่างอย่างสิ้นเชิง ฉันจะรับ Intellisense ได้อย่างไร? ฉันต้องการเขียนโปรแกรมแยกวิเคราะห์ของฉันใน C #

3
STAThread และมัลติเธรด
จากบทความ MSDN ใน STAThread: ระบุว่าแบบจำลองเธรด COM สำหรับแอ็พพลิเคชันเป็น single-threaded apartment (STA) (สำหรับการอ้างอิงนั่นคือบทความทั้งหมด ) อพาร์ทเมนต์แบบเธรดเดี่ยว ... ตกลงที่อยู่เหนือหัวของฉัน นอกจากนี้ฉันอ่านที่ไหนสักแห่งเว้นแต่แอปพลิเคชันของคุณจะใช้ COM interop แอตทริบิวต์นี้ไม่ได้ทำอะไรเลย มันทำอะไรกันแน่และมีผลต่อแอพพลิเคชั่นมัลติเธรดอย่างไร? แอพพลิเคชั่นแบบมัลติเธรด (ซึ่งรวมถึงอะไรก็ตามจากใครก็ตามที่ใช้Timers ไปจนถึงการเรียกเมธอดอะซิงโครนัสไม่ใช่แค่เธรดพูลและสิ่งที่คล้ายกัน) ใช้ MTAThread แม้ว่ามันจะ 'เพียงเพื่อความปลอดภัย' ก็ตาม STAThread และ MTAThread ทำอะไรได้จริง?
102 c#  .net  multithreading  sta 

8
ประเภทหรือชื่อเนมสเปซ 'วัตถุ' ไม่มีอยู่ในเนมสเปซ 'System.Data'
ฉันใช้เอนทิตี C # และ SQL Server เพื่อสร้างแอป n-tier ฉันกำลังสร้างคลาสพื้นฐานที่ใช้ร่วมกันกับส่วนประกอบ DAL ทั้งหมดของฉัน ในคลาสฐานนี้ฉันต้องการจัดการสถานะการเชื่อมต่อของคลาสฐาน ObjectContext ที่สืบทอดมาโดยอ็อบเจ็กต์เอนทิตี การคอมไพล์ทำให้เกิดข้อผิดพลาดต่อไปนี้: ชนิดหรือชื่อเนมสเปซ 'ออบเจ็กต์' ไม่มีอยู่ในเนมสเปซ 'System.Data' (คุณไม่มีการอ้างอิงแอสเซมบลีหรือไม่) นอกจากนี้คำสั่งใช้ System.Data.Objects ไม่สามารถแก้ไขได้ด้วยเหตุผลเดียวกัน ฉันพยายามเพิ่มแอสเซมบลีเป็นข้อมูลอ้างอิง แต่ไม่พบในแท็บ. NET ของการอ้างอิงแอสเซมบลี ความคิดใด ๆ ? ขอบคุณ!

12
นิพจน์ทั่วไปเพื่อตรวจสอบว่ารหัสผ่านเป็น“ 8 อักขระรวมทั้งตัวอักษรตัวพิมพ์ใหญ่ 1 ตัวอักขระพิเศษ 1 ตัวอักขระตัวเลขและตัวอักษร”
ฉันต้องการนิพจน์ทั่วไปเพื่อตรวจสอบสิ่งนั้น รหัสผ่านต้องมีอักขระแปดตัวรวมทั้งตัวอักษรตัวพิมพ์ใหญ่หนึ่งตัวอักขระพิเศษหนึ่งตัวและอักขระที่เป็นตัวเลขและตัวอักษร และนี่คือนิพจน์การตรวจสอบความถูกต้องของฉันซึ่งมีไว้สำหรับอักขระแปดตัวซึ่งรวมถึงอักษรตัวพิมพ์ใหญ่หนึ่งตัวอักษรตัวพิมพ์เล็กหนึ่งตัวและตัวเลขหนึ่งตัวหรืออักขระพิเศษ (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$" ฉันจะเขียนรหัสผ่านที่ต้องมีอักขระแปดตัวรวมทั้งตัวอักษรตัวพิมพ์ใหญ่หนึ่งตัวอักขระพิเศษและอักขระที่เป็นตัวเลขและตัวอักษรได้อย่างไร
102 c#  regex 

6
ฉันจะแสดงกล่องโต้ตอบบันทึกเป็นใน WPF ได้อย่างไร
ฉันมีข้อกำหนดใน WPF / C # ให้คลิกที่ปุ่มรวบรวมข้อมูลบางส่วนแล้ววางไว้ในไฟล์ข้อความที่ผู้ใช้สามารถดาวน์โหลดลงในเครื่องได้ ฉันสามารถรับครึ่งแรกได้ แต่คุณจะแจ้งผู้ใช้ด้วยกล่องโต้ตอบ "บันทึกเป็น" ได้อย่างไร ไฟล์จะเป็นไฟล์ข้อความธรรมดา
102 c#  wpf  save 

3
C # - แอตทริบิวต์เพื่อข้ามวิธีการในขณะที่ก้าวเข้าสู่โหมดดีบัก
มีแอตทริบิวต์ที่ฉันสามารถใช้กับเมธอดเพื่อที่ว่าเมื่อก้าวผ่านโค้ดบางตัวในโหมดดีบักตัวดีบักเกอร์จะอยู่ด้านนอกของวิธีการหรือไม่
102 c#  .net  debugging  attributes 

4
ASP.Net: Literal vs Label
ฉันแค่อยากได้ยินเจ้าหน้าที่บางคนว่าคุณควรใช้การLITERALควบคุมไฟล์LABEL. ตามที่ฉันเข้าใจความแตกต่างคือ: A LABELสามารถกำหนดสไตล์ผ่าน&lt;SPAN&gt;แท็กที่เพิ่มเข้าไป ฉันเองพบว่าการเพิ่ม&lt;SPAN&gt;แท็กใน HTML ของฉันน่ารำคาญมากและไม่เคยใช้สไตล์ผ่าน ASP เลยLITERALดูเหมือนว่าจะเป็นสิ่งที่ควรใช้เกือบตลอดเวลา ... แต่ฉันกังวลว่ามีข้อควรพิจารณาหรือประโยชน์อื่น ๆใช้ LABEL ทับโดยที่ฉันไม่รู้ตัว การแทนที่LABELs ด้วยLITERALs นั้นดี 100% หรือไม่หากเราไม่ได้ใช้สไตล์กับมัน ไม่มีข้อควรพิจารณาอื่น ๆ ?
102 c#  asp.net  html  controls 

4
การสร้างเธรด - Task.Factory.StartNew vs new Thread ()
ฉันเพิ่งเรียนรู้เกี่ยวกับ Threading และ Parallel libraries ใหม่ใน. Net 4 ในอดีตฉันจะสร้าง Thread ใหม่ในลักษณะนี้ (ดังตัวอย่าง): DataInThread = new Thread(new ThreadStart(ThreadProcedure)); DataInThread.IsBackground = true; DataInThread.Start(); ตอนนี้ฉันทำได้: Task t = Task.Factory.StartNew(() =&gt; { ThreadProcedure(); }); อะไรคือความแตกต่างถ้ามี? ขอบคุณ

2
โครงการที่อ้างอิงได้รับ“ สูญหาย” ในเวลาคอมไพล์
ฉันมีโซลูชัน C # กับสองโครงการ: บริการ (โครงการหลัก) และคนตัดไม้ บริการใช้คลาสจากคนตัดไม้ ฉันได้เพิ่มการอ้างอิงไปยังโปรเจ็กต์คนตัดไม้ภายในโปรเจ็กต์บริการ ในขณะออกแบบการเติมข้อความอัตโนมัติทำงานได้ดี: ชั้นเรียนของคนตัดไม้สามารถมองเห็นได้การอ้างอิงที่ฉันใช้จะมีสีที่เหมาะสม ฉันสร้างโซลูชันขึ้นมาใหม่และเกิดข้อผิดพลาด ระบบไม่รู้จักการอ้างอิงอีกต่อไป: "ชื่อ" การบันทึก "ไม่มีอยู่ในบริบทปัจจุบัน" และชั้นเรียนไม่มีอยู่ในการเติมข้อความอัตโนมัติอีกต่อไปการลบและใส่ข้อมูลอ้างอิงใหม่ทำให้ฉันกลับสู่สถานะพื้นฐานของการมีตัวระบุที่มองเห็นได้ในการเติมข้อความอัตโนมัติ ฉันได้รีบูตล้างแคชทั้งหมดตรวจสอบให้แน่ใจว่านี่เป็นอินสแตนซ์เดียวของ VS 2010 ที่ทำงานบนเครื่องของฉัน มีบางอย่างที่ชัดเจน (ชัดเจน) ที่ฉันขาดหายไป
102 c#  reference  project 

9
มีตัวอย่าง JSON Web Token (JWT) ใน C # หรือไม่
ฉันรู้สึกเหมือนกำลังกินยาบ้าๆอยู่ที่นี่ โดยปกติแล้วจะมีไลบรารีและตัวอย่างกว่าล้านตัวอย่างลอยอยู่บนเว็บสำหรับงานใด ๆ ก็ตาม ฉันพยายามที่จะใช้การตรวจสอบด้วย Google "บัญชีบริการ" โดยการใช้ JSON เว็บโทเคน (JWT) ตามที่อธิบายไว้ที่นี่ อย่างไรก็ตามมีเฉพาะไลบรารีไคลเอ็นต์ใน PHP, Python และ Java แม้แต่การค้นหาตัวอย่าง JWT นอกการตรวจสอบสิทธิ์ของ Google ก็มีเพียงจิ้งหรีดและร่างแนวคิด JWT นี่เป็นระบบใหม่จริง ๆ และอาจเป็นระบบที่เป็นกรรมสิทธิ์ของ Google หรือไม่ ตัวอย่าง java ที่ใกล้เคียงที่สุดที่ฉันสามารถตีความได้ดูค่อนข้างเข้มข้นและน่ากลัว จะต้องมีบางอย่างใน C # ที่อย่างน้อยฉันก็เริ่มได้ ช่วยด้วยจะดีมาก!
102 c#  oauth  oauth-2.0  jwt 

4
WebConfigurationManager และ ConfigurationManager แตกต่างกันอย่างไร
อะไรคือความแตกต่างระหว่างWebConfigurationManagerและConfigurationManagerอะไร? ฉันควรใช้เมื่อใด ปรับปรุง ฉันเพิ่งดูWebConfigurationManagerและด้วยเหตุผลบางประการคุณไม่สามารถเข้าถึงสตริงการเชื่อมต่อได้เหมือนที่คุณทำในConfigurationManager(เช่นอาร์เรย์) ใครช่วยบอกทีว่าทำไม MS ถึงทำแบบนี้? ดูเหมือนจะเป็นความเจ็บปวดในการรับสตริงการเชื่อมต่อที่คุณต้องการโดยใช้ไฟล์WebConfigurationManager. อัปเดตอีกครั้งด้วย CAVEAT! หากคุณไม่มีการอ้างอิงถึงSystem.Configurationเนมสเปซที่เพิ่มในโปรเจ็กต์ของคุณ Visual Studio จะแสดงข้อผิดพลาดเมื่อคุณพยายามและเข้าถึงWebConfigurationManager.ConnectionStringsอาร์เรย์ที่คล้ายกัน!

5
เหตุใดพารามิเตอร์ const จึงไม่อนุญาตให้ใช้ใน C #
มันดูแปลกโดยเฉพาะสำหรับนักพัฒนา C ++ ใน C ++ เราใช้เพื่อทำเครื่องหมายพารามิเตอร์เป็นconstเพื่อให้แน่ใจว่าสถานะจะไม่เปลี่ยนแปลงในวิธีการ นอกจากนี้ยังมีเหตุผลเฉพาะอื่น ๆ ของ C ++ เช่นการส่งผ่านconst refเพื่อส่งต่อโดยอ้างอิงและต้องแน่ใจว่าสถานะจะไม่เปลี่ยนแปลง แต่ทำไมเราไม่สามารถทำเครื่องหมายเป็นพารามิเตอร์วิธี const ใน C # ได้? เหตุใดฉันจึงประกาศวิธีการดังต่อไปนี้ไม่ได้ .... static void TestMethod1(const MyClass val) {} .... static void TestMethod2(const int val) {} ....

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