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

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



7
การสร้าง DateTime ในเขตเวลาเฉพาะใน c #
ฉันกำลังพยายามสร้างการทดสอบหน่วยเพื่อทดสอบกรณีและเวลาที่เขตเวลาเปลี่ยนแปลงบนเครื่องเนื่องจากตั้งค่าไม่ถูกต้องจากนั้นจึงแก้ไข ในการทดสอบฉันต้องสามารถสร้างวัตถุ DateTime ในเขตเวลาท้องถิ่นไม่ได้เพื่อให้แน่ใจว่าผู้ที่ใช้การทดสอบสามารถทำได้โดยไม่คำนึงถึงที่ตั้งของพวกเขา จากสิ่งที่ฉันเห็นจากตัวสร้าง DateTime ฉันสามารถตั้งค่า TimeZone ให้เป็นเขตเวลาท้องถิ่นโซนเวลา UTC หรือไม่ได้ระบุไว้ ฉันจะสร้าง DateTime ด้วยเขตเวลาเฉพาะเช่น PST ได้อย่างไร
162 c#  .net  datetime  timezone  .net-3.5 

23
Excel“ ตารางภายนอกไม่ได้อยู่ในรูปแบบที่คาดหมาย”
ฉันพยายามอ่านไฟล์ Excel (xlsx) โดยใช้รหัสที่แสดงด้านล่าง ฉันได้รับ "ตารางภายนอกไม่ได้อยู่ในรูปแบบที่คาดหวัง" ข้อผิดพลาดยกเว้นว่าฉันมีไฟล์ที่เปิดอยู่แล้วใน Excel กล่าวอีกนัยหนึ่งฉันต้องเปิดไฟล์ใน Excel ก่อนจึงจะสามารถอ่านได้จากโปรแกรม C # ของฉัน ไฟล์ xlsx อยู่ในเครือข่ายของเรา ฉันจะอ่านไฟล์โดยไม่ต้องเปิดไฟล์ก่อนได้อย่างไร? ขอบคุณ string sql = "SELECT * FROM [Sheet1$]"; string excelConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathname + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\""; using (OleDbDataAdapter adaptor = new OleDbDataAdapter(sql, excelConnection)) { DataSet ds = new DataSet(); …

2
หมายเลข 161803398 A เป็น 'พิเศษ' หรือไม่ ด้านในของคณิตศาสตร์สุ่ม ()
ฉันสงสัยว่าคำตอบคือ ' เพราะคณิตศาสตร์ ' แต่ฉันหวังว่าบางคนสามารถให้ข้อมูลเชิงลึกมากขึ้นในระดับพื้นฐาน ... วันนี้ฉันไปโผล่มาในซอร์สโค้ด BCL ดูว่ามีบางคลาสที่ฉันใช้มาก่อนอย่างไรบ้าง ฉันไม่เคยคิดเกี่ยวกับวิธีการสร้างตัวเลขสุ่ม (หลอก) มาก่อนดังนั้นฉันจึงตัดสินใจว่าจะทำอย่างไร แหล่งข้อมูลเต็มรูปแบบที่นี่: http://referencesource.microsoft.com/#mscorlib/system/random.cs#29 private const int MSEED = 161803398; ค่า MSEED นี้ใช้ทุกครั้งที่มีการสุ่มคลาส () คลาส อย่างไรก็ตามฉันเห็น 'หมายเลขเวทมนตร์' นี้ - 161803398 - และฉันไม่มีความคิดที่ผิดพลาดว่าเพราะเหตุใดจึงเลือกหมายเลขนั้น ไม่ใช่จำนวนเฉพาะหรือกำลังสองไม่ใช่จำนวนครึ่งทางที่ดูเหมือนจะสำคัญกว่า ฉันดูมันเป็นเลขฐานสองและเลขฐานสิบหกและมันก็ดูเหมือนตัวเลขกับฉัน ฉันพยายามค้นหาหมายเลขใน Google แต่ไม่พบอะไรเลย
162 c#  .net  algorithm  random 

13
การกำหนดค่า. NET (app.config / web.config / settings.settings)
ฉันมีแอปพลิเคชั่น. NET ซึ่งมีไฟล์การตั้งค่าที่แตกต่างกันสำหรับการสร้าง Debug และ Release เช่นไฟล์ debug app.config ชี้ไปที่การพัฒนาSQL Serverซึ่งมีการเปิดใช้งานการดีบักและเป้าหมายการปล่อยไปยัง SQL Server ที่ใช้งานจริง นอกจากนี้ยังมีการตั้งค่าอื่น ๆ ซึ่งบางอย่างมีความแตกต่างในการดีบัก / รีลีส ปัจจุบันฉันใช้สองไฟล์การกำหนดค่าแยกต่างหาก (debug.app.config และ release.app.config) ฉันมีเหตุการณ์บิลด์ในโครงการที่ระบุว่านี่เป็นบิลด์รีลีสจากนั้นคัดลอก release.app.config ไปยัง app.config มิฉะนั้นให้คัดลอก debug.app.config ไปยัง app.config ปัญหาคือแอปพลิเคชันดูเหมือนว่าจะได้รับการตั้งค่าจากไฟล์ settings.settings ดังนั้นฉันต้องเปิดการตั้งค่าการตั้งค่าใน Visual Studio ซึ่งแจ้งให้ฉันว่าการตั้งค่ามีการเปลี่ยนแปลงดังนั้นฉันยอมรับการเปลี่ยนแปลงบันทึก settings.settings และมี เพื่อสร้างใหม่เพื่อให้ใช้การตั้งค่าที่ถูกต้อง มีวิธีที่ดีกว่า / แนะนำ / ที่ต้องการสำหรับการบรรลุผลที่คล้ายกัน? หรืออย่างเท่าเทียมกันฉันได้เข้าหานี้ผิดทั้งหมดและมีวิธีที่ดีกว่า

9
ตัวอย่างความแปรปรวนร่วมและความแปรปรวนของโลกแห่งความจริง
ฉันมีปัญหาเล็กน้อยในการทำความเข้าใจว่าฉันจะใช้ความแปรปรวนร่วมและความแตกต่างในโลกแห่งความจริงได้อย่างไร จนถึงตอนนี้มีเพียงตัวอย่างเดียวที่ฉันเห็นเป็นตัวอย่างอาร์เรย์แบบเดิม object[] objectArray = new string[] { "string 1", "string 2" }; มันคงจะดีถ้าได้เห็นตัวอย่างที่อนุญาตให้ฉันใช้มันในระหว่างการพัฒนาของฉันถ้าฉันเห็นว่ามันถูกใช้ในที่อื่น
162 c#  c#-4.0  covariance 

4
รหัสผ่านเริ่มต้นของ ASP.NET Identity Hasher - ทำงานอย่างไรและปลอดภัยอย่างไร?
ฉันสงสัยว่ารหัสผ่าน Hasher ที่นำมาใช้เป็นค่าเริ่มต้นในUserManagerที่มาพร้อมกับ MVC 5 และ ASP.NET Identity Framework นั้นมีความปลอดภัยเพียงพอหรือไม่ และถ้าเป็นเช่นนั้นถ้าคุณสามารถอธิบายให้ฉันฟังว่ามันทำงานอย่างไร ส่วนต่อประสาน IPasswordHasher มีลักษณะเช่นนี้: public interface IPasswordHasher { string HashPassword(string password); PasswordVerificationResult VerifyHashedPassword(string hashedPassword, string providedPassword); } อย่างที่คุณเห็นมันไม่ใช้เกลือ แต่มีการกล่าวถึงในหัวข้อนี้: "การแฮ็กรหัสผ่าน Asp.net Identity " ซึ่งจะทำให้เกลือเค็มอยู่เบื้องหลัง ดังนั้นฉันสงสัยว่ามันจะทำอย่างไร และเกลือนี้มาจากไหน? ความกังวลของฉันคือเกลือนั้นคงที่ทำให้มันไม่ปลอดภัย

7
ค่าใช้จ่ายในการสร้าง HttpClient ใหม่ต่อการโทรหนึ่งครั้งในไคลเอนต์ WebAPI คืออะไร
สิ่งที่ควรเป็นHttpClientอายุการใช้งานของไคลเอนต์ WebAPI มันจะดีกว่าถ้ามีอินสแตนซ์หนึ่งHttpClientสำหรับการโทรหลายสาย ค่าใช้จ่ายในการสร้างและการกำจัดHttpClientต่อคำขอเป็นอย่างไรเช่นในตัวอย่างด้านล่าง (นำมาจากhttp://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from- a-net-client ): using (var client = new HttpClient()) { client.BaseAddress = new Uri("http://localhost:9000/"); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // New code: HttpResponseMessage response = await client.GetAsync("api/products/1"); if (response.IsSuccessStatusCode) { Product product = await response.Content.ReadAsAsync<Product>(); Console.WriteLine("{0}\t${1}\t{2}", product.Name, product.Price, product.Category); } }

2
แปลงอาร์เรย์ของสตริงเป็น List <string>
ผมเคยเห็นตัวอย่างของการกระทำนี้ใช้.ToList()กับชนิดอาร์เรย์นี้น่าจะใช้ได้เฉพาะในสุทธิ 3.5 ขึ้นไป ฉันทำงานกับ. NET Framework 2.0 ในโครงการ ASP.NET ที่ไม่สามารถอัปเกรดได้ในขณะนี้ดังนั้นฉันสงสัยว่า: มีวิธีแก้ไขปัญหาอื่นหรือไม่ อันที่งดงามกว่าการวนลูปผ่านอาร์เรย์และเพิ่มแต่ละองค์ประกอบในรายการนี้ (ซึ่งไม่มีปัญหาฉันแค่สงสัยว่ามีทางออกที่ดีกว่าสำหรับการเรียนรู้วัตถุประสงค์) หรือไม่ string[] arr = { "Alpha", "Beta", "Gamma" }; List&lt;string&gt; openItems = new List&lt;string&gt;(); foreach (string arrItem in arr) { openItems.Add(arrItem); } ถ้าฉันต้องทำอย่างนี้มีวิธีการจัดสรรอาเรย์ที่เอ้อระเหยจากหน่วยความจำหลังจากที่ฉันคัดลอกมันไปไว้ในรายการหรือไม่?
162 c#  c#-2.0 

12
วิธีการทดสอบว่า Type เป็นแบบดั้งเดิมหรือไม่
ฉันมีบล็อกของรหัสที่ทำให้ประเภทเป็นอนุกรมในแท็ก Html Type t = typeof(T); // I pass &lt;T&gt; in as a paramter, where myObj is of type T tagBuilder.Attributes.Add("class", t.Name); foreach (PropertyInfo prop in t.GetProperties()) { object propValue = prop.GetValue(myObj, null); string stringValue = propValue != null ? propValue.ToString() : String.Empty; tagBuilder.Attributes.Add(prop.Name, stringValue); } นี้ทำงานได้ดียกเว้นฉันต้องการให้ทำเช่นนี้เพียงชนิดดั้งเดิมเช่นint, double, boolฯลฯ และประเภทอื่น …

4
Async / await vs BackgroundWorker
ในไม่กี่วันที่ผ่านมาฉันได้ทดสอบคุณสมบัติใหม่ของ. net 4.5 และ c # 5 ฉันชอบคุณสมบัติใหม่ของ async / await ก่อนหน้านี้ฉันใช้BackgroundWorkerเพื่อจัดการกระบวนการที่ยาวนานขึ้นในพื้นหลังด้วย UI ที่ตอบสนอง คำถามของฉันคือ: หลังจากมีคุณสมบัติใหม่ที่ดีเหล่านี้ฉันควรใช้ async / คอยและเมื่อเป็นBackgroundWorker ? สถานการณ์ทั่วไปสำหรับทั้งคู่คืออะไร

8
การแปลง Stream เป็น String และ back …สิ่งที่ขาดหายไปคืออะไร?
ฉันต้องการทำให้วัตถุเป็นสตริงและกลับเป็นอันดับ เราใช้ protobuf-net เพื่อเปลี่ยนวัตถุให้เป็นกระแสข้อมูลและย้อนกลับได้สำเร็จ อย่างไรก็ตามสตรีมไปยังสตริงและสำรอง ... ไม่ประสบความสำเร็จ หลังจากผ่านไปStreamToStringและStringToStreamใหม่Streamไม่ได้ deserialized โดย protobuf สุทธิ; มันทำให้เกิดArithmetic Operation resulted in an Overflowข้อยกเว้น หากเราเลิกทำการสตรีมดั้งเดิมมันจะได้ผล วิธีการของเรา: public static string StreamToString(Stream stream) { stream.Position = 0; using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)) { return reader.ReadToEnd(); } } public static Stream StringToStream(string src) { byte[] byteArray = …

8
ฉันจะทำให้ชนิดที่ไม่ระบุชื่อ C # เป็นอนุกรมเป็นสตริง JSON ได้อย่างไร
ฉันพยายามใช้รหัสต่อไปนี้เพื่อทำให้เป็นประเภทที่ไม่ระบุชื่อกับ JSON: var serializer = new DataContractJsonSerializer(thing.GetType()); var ms = new MemoryStream(); serializer.WriteObject(ms, thing); var json = Encoding.Default.GetString(ms.ToArray()); อย่างไรก็ตามฉันได้รับข้อยกเว้นต่อไปนี้เมื่อถูกดำเนินการ: พิมพ์ '&lt;&gt; f__AnonymousType1`3 [System.Int32, System.Int32, System.Object []]' ไม่สามารถทำให้เป็นอนุกรม พิจารณาทำเครื่องหมายด้วยแอ็ตทริบิวต์ DataContractAttribute และทำเครื่องหมายสมาชิกทั้งหมดที่คุณต้องการต่อเนื่องกับแอ็ตทริบิวต์ DataMemberAttribute ดูเอกสารประกอบ Microsoft .NET Framework สำหรับประเภทอื่น ๆ ที่รองรับ ฉันไม่สามารถใช้คุณลักษณะกับประเภทที่ไม่ระบุตัวตน (เท่าที่ฉันรู้) มีวิธีอื่นในการทำซีเรียลไลเซชั่นนี้หรือไม่

6
เลือก Tag Helper ใน ASP.NET Core MVC
ฉันต้องการความช่วยเหลือเกี่ยวกับตัวเลือกแท็กตัวช่วยใน ASP.NET Core ฉันมีรายชื่อพนักงานที่ฉันพยายามผูกกับตัวช่วยแท็กที่เลือก พนักงานของฉันอยู่ในList&lt;Employee&gt; EmployeesListค่าที่เลือกและจะเข้าสู่EmployeeIdคุณสมบัติ โมเดลมุมมองของฉันมีลักษณะเช่นนี้: public class MyViewModel { public int EmployeeId { get; set; } public string Comments { get; set; } public List&lt;Employee&gt; EmployeesList {get; set; } } คลาสพนักงานของฉันมีลักษณะเช่นนี้: public class Employee { public int Id { get; set; } public string FullName { get; set; …

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