Category C Sharp

[C#] มาใช้ HtmlAgilityPack ดึงข้อมูลจากเว็บ

ตอนที่ผมเขียน Blog น่าจะเป็นช่วงปลายปี 2016 นะครับ พอดีวันนี้เหลือเวลาอีก 2-3 ชั่วโมงจะเลิกงาน ผมเลยลองทำ Project ง่ายๆ ดูครับ โดยดึงข้อมูลจากเว็บ เกี่ยวกับข้อมูลพื้นฐานของหุ้นนะครับ ก่อนที่จะทำ สิ่งที่ตต้องทำลอง Research Library ดูก่อนครับ ว่ามีอะไรช่วยได้ไหม เท่าที่ดูมี Library ที่เหมาะสม ดังนี้ครับ HtmlAgilityPack สามารถ Download มาจาก Nuget ได้เลยครับ ถึงเวลาเริ่มทำ ต้องไปส่องเว็บก่อน ว่าเราดึงข้อมูลอะไร ลองดู Code ของ HTML ที่ได้ ลอง View…

[C#] Guidelines for Exception Handling

หลังจากเขียน Code ในการทำงานมาหลายปี พอดีเจอบทความนึงที่น่าสนใจ ผมเลยทำความเข้าใจ และสรุป เกี่ยวกับ Exception ดังนี้ครับ Exception คือ อะไร ? Exception คือ การแจ้งข้อมูลข้อผิดพลาดที่เกิดขึ้น จากการทำงานของระบบครับ มันมีกลุ่มที่เราสามารถจัดการเองได้ ใช้ Try Catch เข้าช่วย หรือจัดการไม่ได้เลยพวกกลุ่ม Error Guidelines for Exception Handling – Catch only the exceptions that you can handle. เวลาเขียน Code ใน…

[.NET] ประกาศให้โลกรู้ว่า Method นี้ Class นั้น ตกยุคแล้ว !!!

จาก Code เล็กๆ เมื่อวันเวลาผ่านไป มันก็เติบโตขึ้น ผ่านการตัดต่อพันธุกรรมมาอย่างโชกโชน พร้อมกับภาระหน้าที่อันยิ่งใหญ่ แต่บาง Class บาง Method มันไม่ตอบโจทย์ทางธุรกิจแล้ว มันควรจะถูกกำจัดไปซะ แต่ Code มันบางส่วนมันใช้อยู่ เราจะทำอย่างไร เพื่อให้ทีม Develop ที่พัฒนาด้วยกัน เปลี่ยนไปเรียกใช้ Class หรือ Method ใหม่แทน !!! ทางแรก เราอาจจะประกาสแจ้งให้ในทีมทราบ แต่บางครั้งอาจจะมีหลงลืมบ้าง เพื่อป้องกันปัญหาระยะยาวทำแบบ Java ดีกว่า ตัว Java มันมีบอกว่า Code ส่วนไหนที่เลิกใช้ (deprecated) ไปแล้วครับ โดยในตัว .Net…

[C#] ทำไม int / int แล้วไม่มีทศนิยมหละ

พอดีผมได้ Port Code ในส่วน Business Logic อันนึงจาก VB6 มาเป็ C# แทน เพราะดูแล้วเขียนใหม่น่าจะรีด Performance ได้ดีกว่าครับ หลังจากผมใช้เวลาไปประมาณ 1 เดือน ในการยก Code ขึ้นมา Complile ผ่านนะ แต่ Run แล้ว ประกอบกับ UnitTest แล้วผลลัพธ์ผิด พอลอง Debug เข้าไปดูแล้วพบว่า C# int หาร int ได้ 0 VB6 ได้ค่าทศนิยมมาครับ ถึงตอนนี้เราต้องไปดูที่ C# Specification ครับ…

[C#] Pass By ?

Blog ตอนที่แล้ว ผมได้กล่าวสรุปไปแล้ว ว่าภาษา Java มีการส่งข้อมูล Pass by Value อย่างเดียว คราวนี้มาอีกภาษาที่ผมใช้ในการทำงานบ้าง C# จากโลกของ .NOT เฮ้ยย .NET ครับ  ซึ่งผมได้เขียน Code โดยปรับจาก Java ในบทความก่อน ดังนี้ ครับ namespace TestCSharpPassby { class Program { public static void Main(string[] args) { Company company = new…

[C#] พัฒนาระบบได้ โดยไม่จำเป็นต้องลง DevExpress

DevExpress เป็น Tools ที่ช่วยให้การพัฒนาฝั่ง UI ง่ายๆครับ แต่มันแพง ถ้าทีมเรามี Dev กันหลายๆคน จำเป็นไหมที่ต้องลง DevExpress หมดทุกเครื่อง คำตอบ คือ ไม่จำเป็นครับ (ไม่ใช่ให้ไปลงเถื่อนนะครับ) แต่เราสามารถแก้ไขปรับเปลี่ยนนิดหน่อย เพื่อให้ Dev คนอื่นๆที่ไม่ได้ต้องมาแก้ UI เช่น จัดการกับ Business Logic หรือ จัดการกับ Database สามารถทำงานได้ครับ โดยการแก้ไฟล์ licenses.licx ให้เป็นไฟล์เปล่าๆ ใน Project Main ของเราครับ

[C#] Constants Interfaces ของ Java เทียบเท่ากับอะไรใน C#

ก่อนจะมาเข้าเรื่องของ C# กันลองย้อนไปทาง Java ก่อน โดยเจ้าภาษา Java นี่ มันไม่มี Global Variables ให้ ซึ่งถ้าเราต้องการ Set ค่าคงที่แล้วต้องการให้ทุก Class เห็น และสามารถใช้งานได้ เราต้องทำ Constants Interfaces มองง่ายๆเลย คือ Interface ที่มีแต่ Constant แหละ ตามตัวอย่างเลย มาทาง C# บ้าง ทำไม่ได้ครับ (ส่วนตัว ผมคิดว่าดีที่ C# ทำไม่ได้อ่า) เพราะมันแปลกๆกับการเอา Interface มาเก็บ Const และถ้ามีการจัดหมวดหมู่เยอะนี้…

[C#] Shallow Copy กับ Deep Copy

จากบทความตอนที่แล้ว ความแตกต่างระหว่าง Shallow copy กับ Deep copy คราวนี้เรามาลองดูการใช้งานจริงในภาษา C# บ้างนะครับ สำหรับวิธีการ Copy Object ใน C# มีวิธีที่สามารถทำได้ทั้งหมด ดังนี้ Implement Interface ICloneable MemberwiseClone Reflection Serialization สำหรับวิธีการนี้ ถ้าเป็น .NET Core 5 ไม่สามารถใช้งานได้แล้วนะครับ และถูกเอาออกถาวรใน .NET9Ref: Deserialization risks in use of BinaryFormatter and related types – .NET…

[C#] Decimal? vs Decimal ต่างกันอย่างไร

C# Logo

หลายคนอาจจะงงนะครับว่าทำไมใน C# Version ใหม่ๆ (จริงๆ ไม่น่าจะใหม่นะ เพราะมีมาพอสมควรและ) เราเจอ Code แนวๆนี้ ถ้าสังเกตุจาก Code ตัวอย่างดีพบว่าที่ DataType มันมีเครื่องหมายคำถามเติมเข้ามา ตรงนี้ไม่ต้องสงสัยอะไรนะครับ การที่มี ? เพิ่มเข้ามาเป็นการบอก Datatype ที่เราประกาศนั้นเป็น Nullable Types สามารถเก็บค่า null ได้ครับ โดยสามารถอ่านข้อมูลเพิ่มเติมได้ ดังนี้ครับ Reference Nullable Types

[C#] รวมลิงค์ E-BOOK ที่แจกจากเว็บ c-sharpcorner.com

ช่วงปีใหม่ ผมได้ไปเจอลิงค์ที่เว็บ c-sharpcorner.com มีการแจก E-Book ดีๆหลายเล่มครับ ผมจึงนำแบ่งปันเพื่อนทุกคนครับ  ตามลิงค์ ดังนี้ เลย (ต้องสมัครสมาชิกก่อน และ Load ได้วันละเล่มครับ) โดย E-Book ที่ผมสนใจมี ดังนี้ Learning WCF: Practical Implementation Essential WCF Practical Implementation Introduction to Mongo DB Programming Errors & Solutions Guide to Microsoft Enterprise Library LINQ Quick…