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

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

18
เรียกใช้สคริปต์ SQL ขนาดใหญ่ (ด้วยคำสั่ง GO)
ฉันต้องการเรียกใช้ชุดคำสั่ง SQL จำนวนมาก (สร้างตารางจำนวนมากมุมมองและขั้นตอนการจัดเก็บ) จากภายในโปรแกรม C # ข้อความเหล่านี้จำเป็นต้องแยกด้วยGOงบ แต่SqlCommand.ExecuteNonQuery()ไม่ชอบGOงบ วิธีแก้ปัญหาของฉันซึ่งฉันคิดว่าฉันจะโพสต์เพื่อการอ้างอิงคือการแยกสตริง SQL ในGOบรรทัดและดำเนินการแต่ละชุดแยกกัน มีวิธีที่ง่ายกว่า / ดีกว่านี้ไหม?
89 c#  sql-server 

8
ไม่สามารถใช้ String.Empty เป็นค่าเริ่มต้นสำหรับพารามิเตอร์ที่เป็นทางเลือก
ฉันกำลังอ่านC # ที่มีประสิทธิภาพโดย Bill Wagner ในรายการ 14 - ลดลอจิกการเริ่มต้นที่ซ้ำกันเขาแสดงตัวอย่างต่อไปนี้ของการใช้คุณสมบัติพารามิเตอร์ทางเลือกใหม่ในตัวสร้าง: public MyClass(int initialCount = 0, string name = "") สังเกตว่าเขาใช้""แทนstring.Empty. เขาแสดงความคิดเห็น: คุณจะสังเกตเห็น [ในตัวอย่างด้านบน] ว่าตัวสร้างที่สองระบุ "" สำหรับค่าเริ่มต้นของพารามิเตอร์nameแทนที่จะเป็นแบบธรรมเนียมstring.Emptyพารามิเตอร์มากกว่าจารีตประเพณีมากขึ้นนั่นเป็นเพราะstring.Emptyไม่ใช่ค่าคงที่เวลาคอมไพล์ เป็นคุณสมบัติคงที่ที่กำหนดไว้ในคลาสสตริง เนื่องจากไม่ใช่ค่าคงที่ในการคอมไพล์คุณจึงไม่สามารถใช้เป็นค่าเริ่มต้นสำหรับพารามิเตอร์ได้ หากเราไม่สามารถใช้ไฟล์ string.Emptyแตติกได้ในทุกสถานการณ์นั่นจะไม่ทำให้จุดประสงค์ของมันเสียไปหรือ? ฉันคิดว่าเราจะใช้มันเพื่อให้แน่ใจว่าเรามีวิธีการอ้างถึงสตริงว่างโดยไม่ขึ้นกับระบบ ความเข้าใจของฉันผิดหรือเปล่า? ขอบคุณ. อัปเดต เพียงติดตามความคิดเห็น ตาม MSDN: พารามิเตอร์ทางเลือกแต่ละตัวมีค่าดีฟอลต์เป็นส่วนหนึ่งของนิยาม หากไม่มีการส่งอาร์กิวเมนต์สำหรับพารามิเตอร์นั้นจะใช้ค่าเริ่มต้น ค่าเริ่มต้นต้องเป็นค่าคงที่ จากนั้นเราจะไม่สามารถใช้System.Environment.NewLineอย่างใดอย่างหนึ่งหรือใช้อ็อบเจ็กต์ที่สร้างอินสแตนซ์ใหม่เป็นค่าเริ่มต้น ฉันยังไม่ได้ใช้ VS2010 และมันก็น่าผิดหวัง!

5
วิธีใช้ Guids ใน C #?
รหัสนี้: Something = new Guid() กำลังกลับมา: 00000000-0000-0000-0000-000000000000 ตลอดเวลาและฉันไม่สามารถบอกได้ว่าทำไม? แล้วทำไมล่ะ?
89 c#  guid 

6
C # - ไม่สามารถแปลงประเภทรายการ <Product> เป็นรายการ <IProduct> โดยปริยาย
ฉันมีโปรเจ็กต์ที่มีคำจำกัดความอินเทอร์เฟซทั้งหมดของฉัน: RivWorks อินเตอร์เฟส ฉันมีโปรเจ็กต์ที่ฉันกำหนดการฝังตัวที่เป็นรูปธรรม: RivWorks.DTO ฉันเคยทำสิ่งนี้มาหลายร้อยครั้งแล้ว แต่ด้วยเหตุผลบางอย่างตอนนี้ฉันได้รับข้อผิดพลาดนี้: ไม่สามารถแปลงชนิด 'System.Collections.Generic.List &lt;RivWorks.DTO.Product&gt;' เป็น 'System.Collections.Generic.List โดยปริยาย &lt;RivWorks.Interfaces.DataContracts.IProduct&gt;' โดยปริยาย นิยามอินเทอร์เฟซ (แบบย่อ): namespace RivWorks.Interfaces.DataContracts { public interface IProduct { [XmlElement] [DataMember(Name = "ID", Order = 0)] Guid ProductID { get; set; } [XmlElement] [DataMember(Name = "altID", Order = 1)] long alternateProductID { get; set; } …

1
ไม่สามารถแปลวิธีการเป็นนิพจน์ร้านค้า
ฉันเห็นรหัสนี้ทำงานกับ LINQ ถึง SQL แต่เมื่อฉันใช้ Entity Framework มันแสดงข้อผิดพลาดนี้: LINQ เป็นเอนทิตีไม่รู้จักเมธอด 'System.Linq.IQueryable'1 [MyProject.Models.CommunityFeatures] GetCommunityFeatures ()' เมธอดและเมธอดนี้ไม่สามารถแปลเป็นนิพจน์ร้านค้าได้ รหัสที่เก็บคือ: public IQueryable&lt;Models.Estate&gt; GetEstates() { return from e in entity.Estates let AllCommFeat = GetCommunityFeatures() let AllHomeFeat = GetHomeFeatures() select new Models.Estate { EstateId = e.EstateId, AllHomeFeatures = new LazyList&lt;HomeFeatures&gt;(AllHomeFeat), AllCommunityFeatures = new LazyList&lt;CommunityFeatures&gt;(AllCommFeat) }; } …

7
มีคำอธิบายสำหรับตัวดำเนินการแบบอินไลน์ใน“ k + = c + = k + = c;” หรือไม่
คำอธิบายสำหรับผลลัพธ์จากการดำเนินการต่อไปนี้คืออะไร? k += c += k += c; ฉันพยายามทำความเข้าใจผลลัพธ์ผลลัพธ์จากรหัสต่อไปนี้: int k = 10; int c = 30; k += c += k += c; //k=80 instead of 110 //c=70 และตอนนี้ฉันกำลังพยายามทำความเข้าใจว่าทำไมผลลัพธ์ของ "k" จึงเป็น 80 ทำไมการกำหนด k = 40 จึงไม่ทำงาน (จริงๆแล้ว Visual Studio บอกฉันว่าไม่มีการใช้ค่านั้นที่อื่น) ทำไม k 80 ถึงไม่ใช่ 110? ถ้าฉันแยกการดำเนินการเป็น: k+=c; c+=k; …

3
การโพสต์ JSON เป็น URL ผ่าน WebClient ใน C #
ฉันมีโค้ด JavaScript ที่ต้องแปลงเป็น C # โค้ด JavaScript ของฉันโพสต์ JSON ไปยังบริการเว็บที่สร้างขึ้น โค้ด JavaScript นี้ทำงานได้ดีและมีลักษณะดังต่อไปนี้: var vm = { k: "1", a: "2", c: "3", v: "4" }; $.ajax({ url: "http://www.mysite.com/1.0/service/action", type: "POST", data: JSON.stringify(vm), contentType: "application/json;charset=utf-8", success: action_Succeeded, error: action_Failed }); function action_Succeeded(r) { console.log(r); } function log_Failed(r1, r2, r3) { …
89 c#  webclient 


4
วิธีตรวจสอบผู้ใช้ "เข้าสู่ระบบ"?
ฉันใช้การพิสูจน์ตัวตนแบบฟอร์มด้วยวิธีการด้านล่างในแอปพลิเคชัน ASP.NET ของฉัน FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true); ฉันจะตรวจสอบได้อย่างไรว่าผู้ใช้เข้าสู่ระบบหรือไม่? และฉันจะรับชื่อผู้ใช้ของผู้ใช้ที่ล็อกอินได้อย่างไร?

4
ข้อยกเว้น:“ ไม่รองรับรูปแบบ URI”
ฉันมีเส้นทางท้องถิ่นแน่นอนที่ชี้ไปที่ผบ.: "file:\\C:\\Users\\john\\documents\\visual studio 2010\\Projects\\proj" แต่เมื่อฉันพยายามที่จะโยนมันลงในDirectoryInfoctor ฉันได้รับข้อยกเว้น "ไม่รองรับรูปแบบ URI" ฉัน googled และดู SO แต่ฉันเห็นโซลูชันที่มีเส้นทางระยะไกลเท่านั้นไม่ใช่วิธีแก้ปัญหาในพื้นที่ ฉันคาดหวังวิธีการแปลงบางประเภท ...
89 c#  .net  .net-4.0 

8
การโทร cURL ใน C #
ฉันต้องการcurlโทรต่อไปนี้ในแอปพลิเคชันคอนโซล C # ของฉัน: curl -d "text=This is a block of text" \ http://api.repustate.com/v2/demokey/score.json ฉันพยายามทำเหมือนคำถามที่โพสต์ไว้ที่นี่แต่ฉันไม่สามารถกรอกคุณสมบัติได้อย่างถูกต้อง ฉันยังพยายามแปลงเป็นคำขอ HTTP ปกติ: http://api.repustate.com/v2/demokey/score.json?text="This%20is%20a%20block%20of%20text" ฉันสามารถแปลงการโทร cURL เป็นคำขอ HTTP ได้หรือไม่ ถ้าเป็นเช่นนั้นอย่างไร? ถ้าไม่ฉันจะโทร cURL ข้างต้นจากแอปพลิเคชันคอนโซล C # อย่างถูกต้องได้อย่างไร
89 c#  .net  http  curl 

3
เพิ่มคุณสมบัติ C # แบบไดนามิกที่รันไทม์
ฉันรู้ว่ามีคำถามบางอย่างที่ตอบคำถามนี้ แต่คำตอบมักจะเป็นไปตามแนวการแนะนำพจนานุกรมหรือชุดพารามิเตอร์ซึ่งใช้ไม่ได้กับสถานการณ์ของฉัน ฉันใช้ไลบรารีที่ทำงานผ่านการไตร่ตรองเพื่อทำสิ่งที่ชาญฉลาดมากมายกับวัตถุที่มีคุณสมบัติ สิ่งนี้ใช้ได้กับคลาสที่กำหนดไว้เช่นเดียวกับคลาสไดนามิก ฉันต้องก้าวไปอีกขั้นและทำบางอย่างตามบรรทัดต่อไปนี้: public static object GetDynamicObject(Dictionary&lt;string,object&gt; properties) { var myObject = new object(); foreach (var property in properties) { //This next line obviously doesn't work... myObject.AddProperty(property.Key,property.Value); } return myObject; } public void Main() { var properties = new Dictionary&lt;string,object&gt;(); properties.Add("Property1",aCustomClassInstance); properties.Add("Property2","TestString2"); var myObject = GetDynamicObject(properties); //Then use …

4
ความแตกต่างระหว่างทรัพยากรและทรัพยากรแบบฝังในแอปพลิเคชัน C # คืออะไร
ฉันควรใช้อย่างใดอย่างหนึ่งเมื่อใด ฉันต้องการให้ไฟล์ทั้งหมดที่ฉันใช้ในแอพของฉัน (รูปภาพเสียงไฟล์ xml ฯลฯ ) อยู่ในไฟล์. exe ดังนั้นฉันจึงไม่ปรับใช้กับโฟลเดอร์และไฟล์มากมาย ขอบคุณสำหรับข้อมูล.

3
แปลงวัตถุทุกประเภทเป็น JObject ด้วย Json.NET
ฉันมักจะต้องขยายรูปแบบโดเมนของฉันด้วยข้อมูลเพิ่มเติมก่อนส่งคืนให้กับไคลเอ็นต์ด้วย WebAPI เพื่อหลีกเลี่ยงการสร้าง ViewModel ฉันคิดว่าฉันสามารถส่งคืน JObject พร้อมคุณสมบัติเพิ่มเติมได้ อย่างไรก็ตามฉันไม่สามารถหาวิธีโดยตรงในการแปลงวัตถุประเภทใดก็ได้เป็น JObject ด้วยการเรียกใช้ไลบรารี Newtonsoft JSON เพียงครั้งเดียว ฉันคิดสิ่งนี้ขึ้นมา: SerializeObject แรก จากนั้นแยกวิเคราะห์ และขยาย JObject เช่น.: var cycles = cycleSource.AllCycles(); var settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }; var vm = new JArray(); foreach (var cycle in cycles) { var cycleJson = JObject.Parse(JsonConvert.SerializeObject(cycle, …
89 c#  .net  json.net 

4
ฉันควรจับเวลา Stopwatch เมื่อสิ้นสุดวิธีการหรือไม่?
ลองจินตนาการว่าเรามีการวัดอย่างง่ายโดยใช้ Stopwatch public void DoWork() { var timer = Stopwatch.StartNew(); // some hard work Logger.Log("Time elapsed: {0}", timer.Elapsed); timer.Stop(); // Do I need to call this? } ตาม MSDN: ในสถานการณ์นาฬิกาจับเวลาทั่วไปคุณจะเรียกใช้เมธอด Start จากนั้นเรียกเมธอด Stopจากนั้นตรวจสอบเวลาที่ผ่านไปโดยใช้คุณสมบัติ Elapsed ฉันไม่แน่ใจว่าควรเรียกวิธีนี้หรือไม่เมื่อฉันไม่สนใจอินสแตนซ์ตัวจับเวลาอีกต่อไป ฉันควร "ล้าง" โดยใช้Stopวิธีการหรือไม่? แก้ไข โปรดทราบว่า Logger.Log (.. ) ไม่มีค่าใช้จ่ายใด ๆ เนื่องจากtimer.Elapsedถูกอ่านก่อนบันทึกของคนตัดไม้
89 c#  .net  stopwatch 

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