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

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

4
ฉันจะฆ่าการเชื่อมต่อ SignalR ได้อย่างไร?
ฉันใช้ SignalR เพื่อถ่ายโอนข้อมูลบนเว็บไซต์ แต่ SignalR ควรจะสามารถส่งข้อมูลในช่วงระยะเวลาหนึ่งเท่านั้นและหากช่วงเวลาที่ผ่านการเชื่อมต่อควรถูกฆ่า ฟังก์ชั่นหยุดทำงาน$.connection.hub.stop()จะถูกยกเลิกหากคำขอยังค้างอยู่และยังไม่เสร็จสมบูรณ์ แต่คำขอนี้ควรถูกบังคับให้ยกเลิกไม่ว่าจะส่งข้อมูลไปเท่าใด ฉันจะฆ่าการเชื่อมต่อสัญญาณได้อย่างไร

1
HttpClient ทำงานพร้อมกันแตกต่างกันเมื่อทำงานใน Powershell กว่าใน Visual Studio
ฉันกำลังโยกย้ายผู้ใช้นับล้านจากโฆษณาในสถานที่ไปยัง Azure AD B2C โดยใช้ MS Graph API เพื่อสร้างผู้ใช้ใน B2C ฉันได้เขียนแอปพลิเคชันคอนโซล. Net Core 3.1 เพื่อทำการย้ายข้อมูลนี้ เพื่อเพิ่มความเร็วของสิ่งต่าง ๆ ในขณะที่ฉันกำลังเรียกใช้กราฟ API พร้อมกัน มันใช้งานได้ดีมาก ในระหว่างการพัฒนาฉันพบว่าประสิทธิภาพที่ยอมรับได้ในขณะที่เรียกใช้จาก Visual Studio 2019 แต่สำหรับการทดสอบฉันกำลังเรียกใช้จากบรรทัดคำสั่งใน Powershell 7 จาก Powershell ประสิทธิภาพของการโทรพร้อมกันไปยัง HttpClient นั้นแย่มาก ปรากฏว่ามีการ จำกัด จำนวนการโทรพร้อมกันที่ HttpClient อนุญาตเมื่อเรียกใช้จาก Powershell ดังนั้นการโทรแบบ Batches พร้อมกันที่มีมากกว่า 40 ถึง 50 คำขอจะเริ่มซ้อนกัน ดูเหมือนว่าจะเรียกใช้คำขอที่เกิดขึ้นพร้อมกัน 40 ถึง 50 …

2
กินข้อความเดิมอีกครั้งหากการประมวลผลข้อความล้มเหลว
ฉันใช้ Confluent.Kafka .NET ไคลเอ็นต์เวอร์ชัน 1.3.0 ฉันกำลังติดตามเอกสาร : var consumerConfig = new ConsumerConfig { BootstrapServers = "server1, server2", AutoOffsetReset = AutoOffsetReset.Earliest, EnableAutoCommit = true, EnableAutoOffsetStore = false, GroupId = this.groupId, SecurityProtocol = SecurityProtocol.SaslPlaintext, SaslMechanism = SaslMechanism.Plain, SaslUsername = this.kafkaUsername, SaslPassword = this.kafkaPassword, }; using (var consumer = new ConsumerBuilder<Ignore, string>(consumerConfig).Build()) { …

1
InvalidOperationException ที่ไม่คาดคิดเมื่อพยายามเปลี่ยนความสัมพันธ์ผ่านค่าเริ่มต้นของคุณสมบัติ
ในรหัสตัวอย่างด้านล่างฉันได้รับข้อยกเว้นต่อไปนี้เมื่อทำdb.Entry(a).Collection(x => x.S).IsModified = true: System.InvalidOperationException: 'ไม่สามารถติดตามอินสแตนซ์ของประเภทเอนทิตี' B 'ได้เนื่องจากอินสแตนซ์อื่นที่มีค่าคีย์' {Id: 0} 'กำลังถูกติดตามอยู่ เมื่อแนบเอนทิตีที่มีอยู่ตรวจสอบให้แน่ใจว่าแนบอินสแตนซ์เอนทิตีเดียวที่มีค่าคีย์ที่กำหนดไว้แนบ ทำไมมันไม่เพิ่มแทนที่จะแนบอินสแตนซ์ของ B เอกสารสำหรับแปลกIsModifiedไม่ได้ระบุInvalidOperationExceptionว่าเป็นข้อยกเว้นที่เป็นไปได้ เอกสารไม่ถูกต้องหรือมีข้อบกพร่อง? ฉันรู้ว่ารหัสนี้แปลก แต่ฉันเขียนมันเพื่อทำความเข้าใจว่า ef core ทำงานอย่างไรในบางกรณี egde สิ่งที่ฉันต้องการคือคำอธิบายไม่ใช่การแก้ไข using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; class Program { public class A { public int Id { get; set; } public ICollection<B> …

1
ส่งคืน IAsyncEnumerable <T> และ NotFound จาก Asp.Net Core Controller
อะไรคือลายเซ็นที่ถูกต้องสำหรับแอ็คชั่นคอนโทรลเลอร์ที่ส่งกลับค่าIAsyncEnumerable&lt;T&gt;a และ a NotFoundResultแต่ยังคงถูกประมวลผลในรูปแบบ async? ฉันใช้ลายเซ็นนี้และไม่ได้รวบรวมเพราะIAsyncEnumerable&lt;T&gt;ไม่สามารถรอได้: [HttpGet] public async Task&lt;IActionResult&gt; GetAll(Guid id) { try { return Ok(await repository.GetAll(id)); // GetAll() returns an IAsyncEnumerable } catch (NotFoundException e) { return NotFound(e.Message); } } อันนี้คอมไพล์ได้ดี แต่ลายเซ็นมันไม่ได้เป็นแบบซิงค์ ดังนั้นฉันกังวลว่าจะบล็อกเธรดพูลเธรดหรือไม่: [HttpGet] public IActionResult GetAll(Guid id) { try { return Ok(repository.GetAll(id)); // GetAll() returns an IAsyncEnumerable …

3
C # พฤติกรรมล้นสำหรับ uint ไม่ จำกัด
ฉันทดสอบโค้ดนี้ที่https://dotnetfiddle.net/ : using System; public class Program { const float scale = 64 * 1024; public static void Main() { Console.WriteLine(unchecked((uint)(ulong)(1.2 * scale * scale + 1.5 * scale))); Console.WriteLine(unchecked((uint)(ulong)(scale* scale + 7))); } } ถ้าฉันรวบรวมด้วย. NET 4.7.2 ฉันจะได้รับ 859091763 7 แต่ถ้าฉันทำ Roslyn หรือ. NET Core ฉันจะได้รับ 859091763 0 ทำไมสิ่งนี้ถึงเกิดขึ้น
10 c#  .net  overflow  roslyn  uint 

1
มีตัวแปลงที่ถูกต้องสำหรับวันที่ฮิจเราะห์เป็นวันที่แบบคริสต์ศักราชหรือไม่
ฉันทำงานหลายโครงการที่มีการแปลงวันที่ ตัวอย่างเช่นฉันทำงานในปฏิทินสุริยคติและวิธีแปลงให้เป็นวันที่แบบคริสต์ศักราชและในทางกลับกัน ปฏิทินสุริยคติ (ปฏิทินเปอร์เซีย) เกือบจะคล้ายกับวันที่แบบคริสต์ศักราชในแง่ของจำนวนวันในหนึ่งปี [ก้าวกระโดดหรือไม่] แต่เมื่อเร็ว ๆ นี้ฉันได้ทำงานในโครงการที่มีปฏิทินจันทรคติ ขณะที่ฉันค้นคว้าเกี่ยวกับปฏิทินจันทรคติฉันก็ตระหนักว่าไม่มีวิธีการทางตรรกะเดียวในการแปลงระบบจันทรคติเป็นพลังงานแสงอาทิตย์ (อย่างน้อยเท่าที่ฉันรู้) นี่คือลิงค์อ้างอิงบางส่วนที่ฉันค้นคว้าเกี่ยวกับพวกเขา: ไม่สามารถแปลงจาก Hijri Date เป็น Gregorian date (c #) แปลงวันที่จาก Hijri Calendar เป็น Gregorian Calendar และในทางกลับกัน วันที่ฮิจเราะห์ให้กับเกรกอเรียนโดยใช้ DateTime.Parse แปลงวันที่ฮิจเราะห์เป็นข้อมูลเกรกอเรียน เมื่อฉันไปตามลิงก์ข้างต้นการฝึกอบรมและการทดสอบผู้คนนำเสนออัลกอริทึมฉันสังเกตเห็นว่าไม่มีใครที่ถูกต้องอย่างแน่นอน พอจะพูดได้เพียงแค่แปลง"1441/02/30" [Safar 30th]เป็นวันที่แบบคริสต์ศักราชซึ่งทุกวิธีที่คุณต้องการลอง ภาพต่อไปนี้มีประโยชน์สำหรับตัวอย่างข้างต้น ฉันใส่รหัสทดสอบที่นี่และล้มเหลว: CultureInfo arSA = new CultureInfo("ar-SA"); arSA.DateTimeFormat.Calendar = new HijriCalendar(); var dateValue = DateTime.ParseExact("1441/02/30", "yyyy/MM/dd", …
10 c#  hijri 

3
วิธีการ Localize ข้อความตรวจสอบ (DataAnnotationsValidator) ในฝั่งเซิร์ฟเวอร์ blazor
ฉันใช้ blazor 3.1 ใน VS 2019 เวอร์ชันล่าสุด จนถึงตอนนี้ฉันสามารถ จำกัด เลเบลหน้า (ชื่อเรื่อง, เขตข้อมูลตาราง ฯลฯ .. ) ในListEmployee.razorหน้าฉันสามารถแปลส่วนหัวของตาราง ฯลฯ และในAddEmplyeeValidation.razorหน้าฉันสามารถ จำกัด รูปแบบป้ายชื่อ แต่ฉันมีปัญหาในการแปลข้อความตรวจสอบ สำหรับข้อความการEmployee.csตรวจสอบความถูกต้องสำหรับข้อความการตรวจสอบความถูกต้องจะกำหนดไว้ในไฟล์ &amp; Resources/Dataโฟลเดอร์นี้โดยใช้ชื่อที่กำหนดData.Employee.ar.resxและData.Employee.ar.resxนี่ไม่ทำงาน ใช้ System.ComponentModel.DataAnnotations; namespace BlazorSPA1.Data {พนักงานระดับสาธารณะ {[MaxLength (50)] สตริงสาธารณะรหัส {รับ; ตั้ง; } [Required (ErrorMessage ="Name is RRRequired")] [StringLength(20, ErrorMessage = "Name is too long.")] public string Name …

5
ประเภทอ้างอิงที่ไม่เป็นโมฆะใน C # 8 สามารถเป็นโมฆะในรันไทม์หรือไม่
ดูเหมือนว่าสำหรับฉันไม่มีการรับประกันว่าตัวแปรที่ไม่เป็นโมฆะจะไม่มีโมฆะ ลองนึกภาพฉันมีชั้นเรียนที่มีคุณสมบัติหนึ่งที่ไม่เป็นโมฆะ: public class Foo { public Foo(string test) { Test = test; } public string Test {get;set;} } ตอนนี้อาจดูเหมือนว่าตอนนี้ไม่สามารถเป็นค่าว่างได้ แต่ถ้าเราอ้างอิงคลาสนี้กับไลบรารี่อื่นที่ไม่ได้ใช้บริบทที่ไม่มีค่าใด ๆ จะไม่มีสิ่งใดหยุดมันจากการส่งค่า null ในนั้น ถูกต้องหรือมีการตรวจสอบรันไทม์บางอย่างเช่นกันซึ่งอาจทำให้แน่ใจได้

1
ทำไมผลลัพธ์ของ Vector2.Normalize () จึงเปลี่ยนไปหลังจากที่เรียกมันว่า 34 ครั้งด้วยอินพุตที่เหมือนกัน?
นี่คือโปรแกรม C # .NET Core 3.1 แบบธรรมดาที่เรียกSystem.Numerics.Vector2.Normalize()ใช้ลูป (มีอินพุตเหมือนกันทุกการโทร) และพิมพ์ผลเวกเตอร์ที่ได้มาตรฐาน: using System; using System.Numerics; using System.Threading; namespace NormalizeTest { class Program { static void Main() { Vector2 v = new Vector2(9.856331f, -2.2437377f); for(int i = 0; ; i++) { Test(v, i); Thread.Sleep(100); } } static void Test(Vector2 v, int i) { …
10 c#  .net  .net-core 

3
มีระเบียบการตั้งชื่อที่ชัดเจนสำหรับวิธีการส่งคืน IAsyncEnumerable หรือไม่
หลังจาก C # 5 แนะนำasyncและawaitโมเดลสำหรับการโปรแกรมแบบอะซิงโครนัสชุมชน C # มาถึงการประชุมการตั้งชื่อเพื่อเพิ่มคำต่อท้าย "Async" ลงในเมธอดที่ส่งคืนชนิดที่ไม่ต้องรอคอยเช่นนี้ interface Foo { Task BarAsync(); } เครื่องวิเคราะห์รหัสแบบสแตติกจำนวนมาก (ทั้งที่ใช้แบบ Roslyn และแบบที่ไม่ใช่แบบ Roslyn) ได้ถูกเขียนขึ้นอยู่กับแบบแผนการตั้งชื่อนี้เมื่อตรวจจับกลิ่นรหัสรอบโปรแกรมแบบอะซิงโครนัส ตอนนี้ C # 8 ได้นำเสนอแนวคิดของการแจกแจงแบบอะซิงโครนัสซึ่งตัวเองไม่สามารถรอได้ แต่สามารถใช้ร่วมกับawait foreachดูเหมือนว่ามีสองตัวเลือกสำหรับวิธีการตั้งชื่อที่ส่งคืนIAsyncEnumerable: interface Foo { // No "Async" suffix, indicating that the return value is not awaitable. IAsyncEnumerable&lt;T&gt; Bar&lt;T&gt;(); } หรือ interface Foo …
10 c#  c#-8.0 

1
ฉันสามารถหลีกเลี่ยงการเพิ่ม. dll เหล่านี้เมื่อติดตั้งแพคเกจ NuGet ได้หรือไม่?
ฉันเริ่มด้วยการอ่านคำถามที่แนะนำนี้คล้ายกับของฉัน แต่ไม่มีวิธีแก้ปัญหา: ทำไม MSTest.TestAdapter จึงเพิ่ม DLLs ลงในแพ็คเกจ NuGet ของฉัน คำอธิบายปัญหาด่วน ฉันเขียนแพคเกจ NuGet และทุกครั้งที่ฉันติดตั้งNUnitและNUnit3TestAdapter .dllได้รับการเพิ่มเข้าในโครงการที่ฉันติดตั้ง ฉันต้องการค้นหาวิธีแก้ไขปัญหานี้ ทำซ้ำขั้นตอน ฉันผลักที่เก็บคอมไพล์สองแห่งเพื่อสร้างปัญหาที่ฉันกำลังอธิบาย ClientLibrary/ MainFramework(โครงการที่ฉันสร้างแพ็คเกจ NuGet) - https://github.com/harbourc/client-library-repro-nuget-issue TargetProject(โปรเจ็กต์นั้นต้องติดตั้งใน) - https://github.com/harbourc/target-project-repro-nuget-issue คุณสามารถโคลนที่เก็บทั้งสองคืนค่าแพ็คเกจ NuGet และสร้างปัญหาดังต่อไปนี้: ค้นหา ClientLibrary.1.0.0.nupkg ใน client-library-repro-nuget-issue / ClientLibrary / เปิดคอนโซลตัวจัดการแพคเกจสำหรับเป้าหมายโครงการ repro-nuget-issue และเรียกใช้ Install-Package C:\Path\To\client-library-repro-nuget-issue\ClientLibrary\ClientLibrary.1.0.0.nupkg จดบันทึกNUnitและNUnit3TestAdapter .dllของที่ถูกเพิ่มเข้าไปTargetProject- แม้ว่าจะTargetProjectมีNUnitและNUnit3TestAdapterติดตั้งแล้วก็ตาม ภาพรวมอีกต่อไป ผมได้สร้างแพคเกจ NuGet ของตัวเองสำหรับการใช้ภายในเรียกว่าและฉันกำลังพยายามที่จะติดตั้งในโครงการอื่นที่จะเรียกว่าClientLibrary TargetProjectนี่คือการแบ่งโครงสร้างอย่างรวดเร็ว: FullSolution.sln MainFramework.csproj …
10 c#  .net  dll  nuget 

8
วิธีการรับตัวเลขก่อนคำบางคำโดยใช้ regex ใน c #?
เราจะใช้ regex ด้านล่างเพื่อรับตัวเลขก่อนคำ ตัวอย่าง: 838123 บางคำ 8 บางคำ 12 บางคำ (\d+)\s*someWord แต่บางครั้งจะมีอะไรเกิดขึ้นระหว่าง Number และ word โปรดดูตัวอย่างบรรทัดด้านล่าง Ex: 43434 ของ mallord 12 สิ่งใด ๆ ที่ordord 2323 new mallord วิธีการรับตัวเลขที่แน่นอนก่อนที่คำว่าใช้ regex? กรุณาให้คำแนะนำของคุณ
10 c#  .net  regex 

1
'System.Boolean` ของ mscorlib จะหลีกเลี่ยงวงจรโครงร่างอย่างไร
ซอร์สโค้ดสำหรับSystem.Booleanที่เว็บไซต์แหล่งอ้างอิงระบุว่าอินสแตนซ์ของstruct Booleanมีเพียงboolฟิลด์เดียวprivate bool m_value: https://referencesource.microsoft.com/#mscorlib/system/boolean.cs,f1b135ff6c380b37 namespace System { using System; using System.Globalization; using System.Diagnostics.Contracts; [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public struct Boolean : IComparable, IConvertible #if GENERICS_WORK , IComparable&lt;Boolean&gt;, IEquatable&lt;Boolean&gt; #endif { private bool m_value; internal const int True = 1; internal const int False = 0; internal const String TrueLiteral = "True"; …
10 c# 

3
วิธีที่ถูกต้องในการยกเลิกโทเค็นการยกเลิกถูกใช้ในงานหรือไม่?
ฉันมีรหัสที่สร้างโทเค็นการยกเลิก public partial class CardsTabViewModel : BaseViewModel { public CancellationTokenSource cts; public async Task OnAppearing() { cts = new CancellationTokenSource(); // &lt;&lt; runs as part of OnAppearing() รหัสที่ใช้: await GetCards(cts.Token); public async Task GetCards(CancellationToken ct) { while (!ct.IsCancellationRequested) { App.viewablePhrases = App.DB.GetViewablePhrases(Settings.Mode, Settings.Pts); await CheckAvailability(); } } และรหัสที่ยกเลิกภายหลังโทเค็นการยกเลิกนี้ในกรณีที่ผู้ใช้ย้ายออกจากหน้าจอที่ใช้รหัสข้างต้น: public void …

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