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

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

4
แนวทางที่ดีที่สุดในการออกแบบไลบรารี F # สำหรับการใช้งานทั้ง F # และ C #
ฉันกำลังพยายามออกแบบห้องสมุดใน F # ห้องสมุดที่ควรจะเป็นมิตรสำหรับการใช้งานจากทั้ง F # และ C # และนี่คือจุดที่ฉันติดอยู่เล็กน้อย ฉันสามารถทำให้ F # เป็นมิตรหรือฉันสามารถทำให้ C # เป็นมิตรได้ แต่ปัญหาคือจะทำให้เป็นมิตรกับทั้งคู่ได้อย่างไร นี่คือตัวอย่าง ลองนึกภาพว่าฉันมีฟังก์ชันต่อไปนี้ใน F #: let compose (f: 'T -> 'TResult) (a : 'TResult -> unit) = f >> a สามารถใช้งานได้อย่างสมบูรณ์แบบจาก F #: let useComposeInFsharp() = let composite = compose (fun item -> …
113 c#  f# 


3
คำต่อท้ายการประกาศสำหรับประเภททศนิยม
ถ้าฉันต้องการใช้ลิเทอรัลทศนิยมในโค้ดฉันเห็นว่ามีส่วนต่อท้าย m อยู่ (โดยที่ m หมายถึง money) สิ่งนี้เหมาะสมกับทศนิยมหรือไม่หรือมีการกำหนดทั่วไปมากกว่า (d ย่อมาจาก double ซึ่งแน่นอนว่าไม่ใช่สิ่งที่ถูกต้องแม้ว่าจะรองรับการแปลงโดยตรงก็ตาม) object decimalValue=2m; โปรดทราบว่าฉันใช้การกำหนดวัตถุเป็นตัวอย่างเพราะในกรณีของ ... decimal decimalValue=2; ... เป็นที่ชัดเจนโดยปริยายว่า 2 ควรตีความเป็นทศนิยมผ่านคอมไพเลอร์ mดูเหมือนจะโอเคmsdnใช้เป็นตัวอย่างสำหรับประเภททศนิยม
113 c#  .net 

9
การส่งอีเมลพร้อมไฟล์แนบจาก C # ไฟล์แนบจะเป็นส่วนที่ 1.2 ในธันเดอร์เบิร์ด
ฉันมีแอปพลิเคชัน C # ที่ส่งอีเมลรายงานสเปรดชีต Excel ผ่านเซิร์ฟเวอร์ Exchange 2007 โดยใช้ SMTP สิ่งเหล่านี้ใช้ได้ดีสำหรับผู้ใช้ Outlook แต่สำหรับผู้ใช้ Thunderbird และ Blackberry ไฟล์แนบได้เปลี่ยนชื่อเป็น "ส่วนที่ 1.2" ฉันพบบทความนี้ซึ่งอธิบายปัญหา แต่ดูเหมือนจะไม่สามารถแก้ปัญหาได้ ฉันไม่สามารถควบคุมเซิร์ฟเวอร์ Exchange จึงทำการเปลี่ยนแปลงที่นั่นไม่ได้ มีอะไรที่ฉันสามารถทำได้ในส่วนท้าย C #? ฉันได้ลองใช้ชื่อไฟล์แบบสั้นและการเข้ารหัส HTML สำหรับเนื้อหา แต่ก็ไม่ได้สร้างความแตกต่าง รหัสส่งเมลของฉันมีแค่นี้: public static void SendMail(string recipient, string subject, string body, string attachmentFilename) { SmtpClient smtpClient = new SmtpClient(); NetworkCredential …
113 c#  email  smtp  attachment 


2
C # generic "where constraint" กับ "any generic type"?
ขอยกตัวอย่าง: ฉันมีนิยามคลาส / อินเทอร์เฟซทั่วไป: interface IGenericCar< T > {...} ฉันมีคลาส / อินเทอร์เฟซอื่นที่ฉันต้องการเชื่อมโยงกับคลาสด้านบนเช่น: interface IGarrage< TCar > : where TCar: IGenericCar< (**any type here**) > {...} โดยพื้นฐานแล้วฉันต้องการให้ IGarrage ทั่วไปของฉันขึ้นอยู่กับIGenericCarไม่ว่าจะเป็นIGenericCar<int>หรือIGenericCar<System.Color>เพราะฉันไม่มีการพึ่งพาประเภทนั้นก็ตาม

15
พบอักขระที่ไม่คาดคิดขณะแยกวิเคราะห์ค่า
ขณะนี้ฉันมีปัญหาบางอย่าง ฉันใช้ C # กับ Json.NET ปัญหาคือฉันมักจะได้รับ: {"พบอักขระที่ไม่คาดคิดขณะแยกวิเคราะห์ค่า: e. path '' บรรทัด 0 ตำแหน่ง 0"} ดังนั้นวิธีที่ฉันใช้ Json.NET มีดังต่อไปนี้ ฉันมีคลาสที่ควรได้รับการบันทึก ชั้นเรียนมีลักษณะดังนี้: public class stats { public string time { get; set; } public string value { get; set; } } public class ViewerStatsFormat { public List<stats> viewerstats { get; set; } …


15
วิธีที่ดีที่สุดในการเปรียบเทียบวัตถุที่ซับซ้อนสองชิ้น
ฉันมีสองวัตถุที่ซับซ้อนเช่นและObject1 พวกเขามีวัตถุเด็กประมาณ 5 ระดับObject2 ฉันต้องการวิธีที่เร็วที่สุดเพื่อบอกว่ามันเหมือนกันหรือไม่ จะทำได้อย่างไรใน C # 4.0?
113 c#  .net 

6
แยกวิเคราะห์และแก้ไขสตริงแบบสอบถามใน. NET Core
ฉันได้รับ URI สัมบูรณ์ที่มีสตริงการสืบค้น ฉันต้องการเพิ่มค่าต่อท้ายสตริงการสืบค้นอย่างปลอดภัยและเปลี่ยนพารามิเตอร์ที่มีอยู่ ฉันไม่ต้องการที่จะแก้ไข&foo=barหรือใช้นิพจน์ทั่วไปการหลีกเลี่ยง URI นั้นยุ่งยาก แต่ฉันต้องการใช้กลไกในตัวที่ฉันรู้ว่าจะทำสิ่งนี้ได้อย่างถูกต้องและจัดการกับการหลบหนี ฉันได้พบ ตันของคำตอบว่าการใช้งานทั้งหมด อย่างไรก็ตามเรื่องนี้เป็นหลัก ASP.NET ไม่มี System.Web อื่น ๆ ประกอบอีกต่อไปจึงไม่มาก HttpUtilityHttpUtility อะไรคือวิธีที่เหมาะสมในการดำเนินการใน ASP.NET Core ในขณะที่กำหนดเป้าหมายไปที่รันไทม์หลัก
113 c#  asp.net  asp.net-core 

6
ฉันควรใช้ ILogger, ILogger <T>, ILoggerFactory หรือ ILoggerProvider สำหรับห้องสมุดหรือไม่
สิ่งนี้อาจเกี่ยวข้องกับPass ILogger หรือ ILoggerFactory ไปยังตัวสร้างใน AspNet Core หรือไม่ อย่างไรก็ตามนี่เป็นเรื่องเกี่ยวกับการออกแบบไลบรารีโดยเฉพาะไม่เกี่ยวกับวิธีที่แอปพลิเคชันจริงที่ใช้ไลบรารีเหล่านั้นใช้การบันทึก ฉันกำลังเขียนไลบรารี. net Standard 2.0 ที่จะติดตั้งผ่าน Nuget และเพื่อให้ผู้ที่ใช้ไลบรารีนั้นได้รับข้อมูลการดีบักฉันขึ้นอยู่กับMicrosoft.Extensions.Logging.Abstractionsเพื่อให้สามารถฉีด Logger ที่เป็นมาตรฐานได้ อย่างไรก็ตามฉันเห็นหลายอินเทอร์เฟซและโค้ดตัวอย่างบนเว็บบางครั้งใช้ILoggerFactoryและสร้างตัวบันทึกใน ctor ของคลาส นอกจากนี้ยังILoggerProviderมีลักษณะที่ดูเหมือน Factory เวอร์ชันอ่านอย่างเดียว แต่การใช้งานอาจใช้หรือไม่ใช้ทั้งสองอินเทอร์เฟซดังนั้นฉันจึงต้องเลือก (โรงงานดูเหมือนธรรมดากว่าผู้ให้บริการ) รหัสบางตัวที่ฉันเคยเห็นใช้ILoggerอินเทอร์เฟซที่ไม่ใช่แบบทั่วไปและอาจแชร์อินสแตนซ์ของคนตัดไม้เดียวกันด้วยซ้ำและบางโค้ดก็ใช้ILogger&lt;T&gt;ctor และคาดว่าคอนเทนเนอร์ DI จะรองรับประเภททั่วไปแบบเปิดหรือการลงทะเบียนอย่างชัดเจนของแต่ละILogger&lt;T&gt;รูปแบบไลบรารีของฉัน ใช้ ตอนนี้ฉันคิดว่านั่นILogger&lt;T&gt;เป็นแนวทางที่ถูกต้องและอาจเป็น ctor ที่ไม่ได้ใช้อาร์กิวเมนต์นั้นและส่ง Null Logger แทน ด้วยวิธีนี้หากไม่จำเป็นต้องมีการบันทึกก็จะไม่มีการใช้ อย่างไรก็ตามตู้คอนเทนเนอร์ DI บางตัวเลือก ctor ที่ใหญ่ที่สุดจึงจะล้มเหลวอยู่ดี ฉันอยากรู้ว่าฉันควรจะทำอะไรที่นี่เพื่อสร้างความปวดหัวให้กับผู้ใช้น้อยที่สุดในขณะที่ยังให้การสนับสนุนการบันทึกที่เหมาะสมหากต้องการ

15
ฉันจะเขียนผลลัพธ์จากการทดสอบหน่วยได้อย่างไร
การเรียกใด ๆ ในหน่วยของฉันจะทดสอบไปที่อย่างใดอย่างหนึ่งDebug.Write(line)หรือConsole.Write(Line)เพียงแค่ข้ามไปในขณะที่ดีบักและผลลัพธ์จะไม่ถูกพิมพ์ออกมา เรียกใช้ฟังก์ชันเหล่านี้จากในชั้นเรียนฉันใช้งานได้ดี ฉันเข้าใจดีว่าการทดสอบหน่วยนั้นเป็นไปโดยอัตโนมัติ แต่ฉันก็ยังต้องการให้สามารถส่งออกข้อความจากการทดสอบหน่วยได้

16
สร้างแบทช์ใน linq
มีใครแนะนำวิธีสร้างแบทช์ที่มีขนาดบางขนาดใน linq ได้ไหม ตามหลักการแล้วฉันต้องการที่จะสามารถดำเนินการเป็นกลุ่มของจำนวนที่กำหนดได้
113 c#  linq 

6
จะถอดรหัส JWT Token ได้อย่างไร?
ฉันไม่เข้าใจว่าห้องสมุดนี้ทำงานอย่างไร คุณช่วยฉันได้ไหม นี่คือรหัสง่ายๆของฉัน: public void TestJwtSecurityTokenHandler() { var stream = "eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJJU1MiLCJzY29wZSI6Imh0dHBzOi8vbGFyaW0uZG5zY2UuZG91YW5lL2NpZWxzZXJ2aWNlL3dzIiwiYXVkIjoiaHR0cHM6Ly9kb3VhbmUuZmluYW5jZXMuZ291di5mci9vYXV0aDIvdjEiLCJpYXQiOiJcL0RhdGUoMTQ2ODM2MjU5Mzc4NClcLyJ9"; var handler = new JwtSecurityTokenHandler(); var jsonToken = handler.ReadToken(stream); } นี่คือข้อผิดพลาด: สตริงต้องอยู่ในรูปแบบ JSON แบบกะทัดรัดซึ่งอยู่ในรูปแบบ: Base64UrlEncodedHeader.Base64UrlEndcodedPayload.OPTIONAL, Base64UrlEncodedSignature ' หากคุณคัดลอกสตรีมในเว็บไซต์ jwt.ioก็ใช้ได้ดี :)
113 c#  .net  jwt 

30
ASP.NET Core 1.0 บนข้อผิดพลาด IIS 502.5
ฉันเพียงแค่การปรับปรุงเซิร์ฟเวอร์ของฉัน (Windows 2012R2) เพื่อ.Net Core 1.0 RTMWindows Hosting .Net Core 1.0 RC2แพ็คจากก่อนหน้านี้ แอพของฉันทำงานบนพีซีของฉันโดยไม่มีปัญหาใด ๆ แต่เซิร์ฟเวอร์ยังคงแสดง: HTTP Error 502.5 - Process Failure Common causes of this issue: The application process failed to start The application process started but then stopped The application process started but failed to listen on the configured …

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