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

"ใช้" เป็นคำสำคัญในภาษาโปรแกรมบางภาษา (C ++, C #, VB.NET, Haxe)

26
วิธีแก้ปัญหาที่ดีที่สุดสำหรับลูกค้า WCF `using` ปัญหาบล็อกคืออะไร?
ฉันชอบอินสแตนซ์ไคลเอ็นต์บริการ WCF ของฉันภายในusingบล็อกเพราะมันเป็นวิธีมาตรฐานในการใช้ทรัพยากรที่ใช้IDisposable: using (var client = new SomeWCFServiceClient()) { //Do something with the client } แต่ดังที่กล่าวไว้ในบทความ MSDN นี้การตัดไคลเอ็นต์ WCF ในusingบล็อกอาจปิดบังข้อผิดพลาดใด ๆ ที่ทำให้ไคลเอ็นต์อยู่ในสถานะบกพร่อง (เช่นหมดเวลาหรือปัญหาการสื่อสาร) เรื่องสั้นสั้น ๆ เมื่อเรียกใช้ Dispose () เมธอด Close () ของไคลเอ็นต์จะเริ่มทำงาน แต่จะโยนข้อผิดพลาดเนื่องจากอยู่ในสถานะบกพร่อง ข้อยกเว้นดั้งเดิมถูกหลอกลวงโดยข้อยกเว้นที่สอง ไม่ดี. วิธีแก้ปัญหาที่แนะนำในบทความ MSDN คือการหลีกเลี่ยงการใช้usingบล็อกอย่างสมบูรณ์และเพื่อยกตัวอย่างลูกค้าของคุณและใช้สิ่งเหล่านี้แทน: try { ... client.Close(); } catch (CommunicationException e) { ... client.Abort(); …
404 c#  vb.net  wcf  using  wcf-client 

12
HttpClient และ HttpClientHandler ต้องถูกกำจัดระหว่างการร้องขอหรือไม่?
System.Net.Http.HttpClientและSystem.Net.Http.HttpClientHandlerใน. NET Framework 4.5 ใช้ IDisposable (ผ่านSystem.Net.Http.HttpMessageInvoker ) usingเอกสารคำสั่งพูดว่า: ตามกฎแล้วเมื่อคุณใช้วัตถุ IDisposable คุณควรประกาศและสร้างอินสแตนซ์ในข้อความสั่งการใช้ คำตอบนี้ใช้รูปแบบนี้: var baseAddress = new Uri("http://example.com"); var cookieContainer = new CookieContainer(); using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer }) using (var client = new HttpClient(handler) { BaseAddress = baseAddress }) { var content = new …

29
การใช้“ การใช้” ใน C # คืออะไร
ผู้ใช้kokosตอบคุณสมบัติที่ซ่อนอยู่ที่ยอดเยี่ยมของคำถามC #โดยกล่าวถึงusingคำหลัก คุณอธิบายรายละเอียดเกี่ยวกับเรื่องนั้นได้ไหม? มีประโยชน์usingอะไรบ้าง?

17
ซ้อนกันโดยใช้คำสั่งใน C #
ฉันกำลังทำงานในโครงการ ฉันต้องเปรียบเทียบเนื้อหาของสองไฟล์และดูว่ามันตรงกันกันหรือไม่ ก่อนที่จะตรวจสอบข้อผิดพลาดและการตรวจสอบจำนวนมากร่างแรกของฉันคือ: DirectoryInfo di = new DirectoryInfo(Environment.CurrentDirectory + "\\TestArea\\"); FileInfo[] files = di.GetFiles(filename + ".*"); FileInfo outputFile = files.Where(f => f.Extension == ".out").Single<FileInfo>(); FileInfo expectedFile = files.Where(f => f.Extension == ".exp").Single <FileInfo>(); using (StreamReader outFile = new StreamReader(outputFile.OpenRead())) { using (StreamReader expFile = new StreamReader(expectedFile.OpenRead())) { while (!(outFile.EndOfStream || …
315 c#  .net  file  using 

4
MySQL ON กับการใช้งาน?
ใน MySQL JOINอะไรคือความแตกต่างระหว่างONและUSING()? เท่าที่ฉันสามารถบอกได้ว่าUSING()เป็นเพียงความสะดวกสบายมากขึ้นในขณะที่ไวยากรณ์ONช่วยให้มีความยืดหยุ่นมากขึ้นเล็กน้อยเมื่อชื่อคอลัมน์ไม่เหมือนกัน อย่างไรก็ตามความแตกต่างที่ให้เล็ก ๆ น้อย ๆ USING()ที่คุณจะคิดว่าพวกเขาต้องการเพียงแค่ทำไปด้วย มีอะไรมากกว่านี้ตรงตา? ถ้าใช่ฉันควรใช้สิ่งใดในสถานการณ์ที่กำหนด
252 mysql  join  using 

14
ทำไมคุณควรลบ C # ที่ไม่จำเป็นโดยใช้คำสั่ง?
ตัวอย่างเช่นฉันไม่ค่อยต้องการ: using System.Text; แต่จะมีตามค่าเริ่มต้นเสมอ ผมถือว่าโปรแกรมจะใช้หน่วยความจำมากขึ้นถ้ารหัสของคุณมีที่ไม่จำเป็นโดยใช้คำสั่ง แต่มีอะไรอีกบ้างที่ฉันควรระวัง? นอกจากนี้มันจะสร้างความแตกต่างใด ๆ หรือไม่หากใช้ directive เดียวกันในไฟล์เดียวเทียบกับไฟล์ส่วนใหญ่ / ทั้งหมด? แก้ไข: โปรดทราบว่าคำถามนี้ไม่ได้เกี่ยวกับแนวคิดที่ไม่เกี่ยวข้องที่เรียกว่าคำสั่งการใช้ซึ่งออกแบบมาเพื่อช่วยจัดการทรัพยากรโดยการทำให้แน่ใจว่าเมื่อวัตถุออกนอกขอบเขตIDisposable.Disposeจะเรียกวิธีการนั้น ดูการใช้ "ใช้" ใน C #
216 c#  assemblies  using 

10
ฉันควรกำจัด () ชุดข้อมูลและ DataTable หรือไม่
ชุดข้อมูลและ DataTable ใช้ทั้ง IDisposable ดังนั้นโดยวิธีปฏิบัติที่ดีที่สุดฉันควรเรียกวิธีการ Dispose () ของพวกเขา อย่างไรก็ตามจากสิ่งที่ฉันอ่านจนถึงขณะนี้ชุดข้อมูลและ DataTable ไม่มีทรัพยากรที่ไม่มีการจัดการดังนั้น Dispose () ไม่ได้ทำอะไรมากจริงๆ นอกจากนี้ฉันไม่สามารถใช้using(DataSet myDataSet...)เพราะชุดข้อมูลมีคอลเลกชัน DataTables ดังนั้นเพื่อความปลอดภัยฉันต้องทำซ้ำผ่าน myDataSet.Tables กำจัดแต่ละ DataTables จากนั้นกำจัด DataSet ดังนั้นมันจึงคุ้มค่าที่จะโทรหา Dispose () ใน DataSets และ DataTables ของฉันทั้งหมดหรือไม่ ภาคผนวก: สำหรับผู้ที่คิดว่าควรกำจัดชุดข้อมูล: โดยทั่วไปแล้วรูปแบบการกำจัดคือการใช้งานusingหรือtry..finallyเนื่องจากคุณต้องการรับประกันว่าจะเรียก Dispose () อย่างไรก็ตามสิ่งนี้ได้รับความรวดเร็วอย่างน่าเกลียดสำหรับคอลเลกชัน ตัวอย่างเช่นคุณจะทำอย่างไรหากหนึ่งในสายที่จะทิ้ง () โยนข้อยกเว้น? คุณกลืน (ซึ่งเป็น "เลว") เพื่อที่คุณจะสามารถกำจัดองค์ประกอบต่อไปได้หรือไม่ หรือคุณแนะนำให้ฉันโทร myDataSet.Dispose () และลืมเกี่ยวกับการทิ้ง DataTables ใน …

5
จะ Dispose () ถูกเรียกใช้ใน statement ที่ใช้กับวัตถุ null หรือไม่?
มีความปลอดภัยในการใช้usingคำสั่งบนวัตถุ (อาจ) null หรือไม่? ลองพิจารณาตัวอย่างต่อไปนี้: class Test { IDisposable GetObject(string name) { // returns null if not found } void DoSomething() { using (IDisposable x = GetObject("invalid name")) { if (x != null) { // etc... } } } } มันรับประกันว่าDisposeจะถูกเรียกเฉพาะในกรณีที่วัตถุไม่เป็นโมฆะและฉันจะไม่ได้รับ a NullReferenceException?
179 c#  idisposable  using 

7
ในบล็อก“ using” เป็น SqlConnection ปิดคืนหรือยกเว้น?
คำถามแรก: บอกว่าฉันมี using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); string storedProc = "GetData"; SqlCommand command = new SqlCommand(storedProc, connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("@EmployeeID", employeeID)); return (byte[])command.ExecuteScalar(); } การเชื่อมต่อปิดหรือไม่ เพราะในทางเทคนิคเราไม่เคยไปถึงหน้าสุดท้าย}เหมือนreturnก่อนหน้านี้ คำถามที่สอง: ครั้งนี้ฉันมี: try { using (SqlConnection connection = new SqlConnection(connectionString)) { int employeeID = findEmployeeID(); connection.Open(); SqlCommand command = …
136 c#  using  sqlconnection 

5
มีผลข้างเคียงของการส่งคืนจากภายในคำสั่ง using () หรือไม่?
การส่งคืนค่าวิธีการจากภายในคำสั่งใช้ที่ได้รับ DataContext ดูเหมือนจะทำงานได้ดีเสมอเช่นนี้: public static Transaction GetMostRecentTransaction(int singleId) { using (var db = new DataClasses1DataContext()) { var transaction = (from t in db.Transactions orderby t.WhenCreated descending where t.Id == singleId select t).SingleOrDefault(); return transaction; } } แต่ฉันมักจะรู้สึกว่าฉันควรจะปิดบางอย่างก่อนที่จะแยกออกจากวงเล็บที่ใช้เช่นโดยการกำหนดธุรกรรมก่อนคำสั่งใช้รับมูลค่าภายในวงเล็บแล้วกลับมาหลังวงเล็บ การกำหนดและส่งคืนตัวแปรนอกวงเล็บใช้จะเป็นการปฏิบัติที่ดีกว่าหรืออนุรักษ์ทรัพยากรด้วยวิธีใด
125 c#  using 

2
ฉันจะใช้คุณลักษณะ C # 6“ การใช้แบบคงที่” ได้อย่างไร?
ฉันมีลักษณะที่คู่ของเป็นคุณสมบัติใหม่ใน C # 6 โดยเฉพาะ "ใช้คงที่" การใช้ staticเป็นรูปแบบใหม่ของการใช้ประโยคที่ให้คุณนำเข้าสมาชิกแบบคงที่ไปยังขอบเขตได้โดยตรง (ด้านล่างของบล็อกโพสต์) แนวคิดมีดังนี้ตามแบบฝึกหัดสองสามข้อที่ฉันพบ แทนที่จะเป็น: using System; class Program { static void Main() { Console.WriteLine("Hello world!"); Console.WriteLine("Another message"); } } คุณสามารถละเว้นConsoleคำสั่งซ้ำได้โดยใช้คุณลักษณะ C # 6 ใหม่ในการใช้คลาสแบบคงที่: using System.Console; // ^ `.Console` added. class Program { static void Main() { WriteLine("Hello world!"); WriteLine("Another message"); } // …


8
ฉันต้องปิด () การเชื่อมต่อ SQLC ก่อนที่จะถูกกำจัดหรือไม่?
สำหรับคำถามอื่น ๆ ของฉันที่นี่เกี่ยวกับ Disposable objectsเราควรเรียก Close () ก่อนสิ้นสุดบล็อกการใช้งานหรือไม่ using (SqlConnection connection = new SqlConnection()) using (SqlCommand command = new SqlCommand()) { command.CommandText = "INSERT INTO YourMom (Amount) VALUES (1)"; command.CommandType = System.Data.CommandType.Text; connection.Open(); command.ExecuteNonQuery(); // Is this call necessary? connection.Close(); }

6
ประสิทธิภาพได้รับผลกระทบอย่างไรจากคำสั่งที่ไม่ได้ใช้งาน?
Visual Studio จะสร้างโดยใช้คำสั่งให้คุณโดยอัตโนมัติเมื่อใดก็ตามที่คุณสร้างเพจหรือโครงการใหม่ บางส่วนคุณจะไม่เคยใช้ Visual Studio มีคุณสมบัติที่เป็นประโยชน์ในการ "ลบการใช้งานที่ไม่ได้ใช้" ฉันสงสัยว่าจะมีผลเสียต่อประสิทธิภาพของโปรแกรมหรือไม่หากคำสั่งการใช้งานที่ไม่เคยเข้าถึงยังคงถูกกล่าวถึงที่ด้านบนของไฟล์
111 c#  .net  visual-studio  using 

5
การ“ ใช้” กับทรัพยากรมากกว่าหนึ่งรายการทำให้ทรัพยากรรั่วไหลได้หรือไม่
C # ให้ฉันทำสิ่งต่อไปนี้ (ตัวอย่างจาก MSDN): using (Font font3 = new Font("Arial", 10.0f), font4 = new Font("Arial", 10.0f)) { // Use font3 and font4. } จะเกิดอะไรขึ้นถ้าfont4 = new Fontพ่น? จากสิ่งที่ฉันเข้าใจว่า font3 จะทำให้ทรัพยากรรั่วไหลและจะไม่ถูกกำจัดทิ้ง นี่คือเรื่องจริง? (font4 จะไม่ถูกกำจัดทิ้ง) หมายความว่าusing(... , ...)ควรหลีกเลี่ยงโดยสิ้นเชิงเพื่อสนับสนุนการใช้ซ้อนกันหรือไม่?

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