Tag C#

String .Equals() vs ==

two pigeon perched on white track light + equal

พอดีเมื่อวันพฤหัสก่อน เห็นน้องที่ทำงานใช้ Operator == ในการตรวจสอบว่า String เป็นอันเดียวกันไหม แต่ผมเห็นแล้วรู้สึกแปลกๆ มันควรใช้ Method Equals() มากกว่าครับ ใน Blog ตอนนี้ผมแสดงความแตกต่างของ .Equals() กับ == โดยผมยกตัวอย่างเฉพาะในภาษา Java และ C# ที่ผมใช้งานหลักอยู่ครับ – JAVA – C# ความแตกต่างของ String .Equals() vs == จาก Code ทั้ง 2 แบบ เราจะเห็นความแตกต่างกันของ String นะครับ…

[VSTO] เปิด Feature Debug Mode ให้กับตัว Excel Add-in (VSTO) ของเรา

เวลาเราทำตัว Add-in สำหรับ Microsoft Office นะครับ บ่อยครั้งเลย ที่เราเอาตัวที่ Build เรียบร้อยแล้ว ไป Deploy ที่เครื่อง User แต่ปรากฏว่า มันเงียบ….. แล้วตรูจะไปต่อยังไงเนี่ยยย วันนี้ผมมีทริปในการ Set ค่า เพื่อเปิด Debug Mode ของ VSTO ครับ Note: สำหรับ KM นี้ใช้กับ .NET Framework เท่านั้นครับ Reference

[VSTO] Registry Key ที่เกี่ยวข้องกับ VSTO

สำหรับตอนนำ VSTO Office Add-in ไปติดตั้ง หากลงผ่านตัว Setup แล้วระบบสร้างตัว Registry ที่เกี่ยวข้อง Registry ที่ Path ดังนี้ครับ สำหรับ Office ทุกตัวยกเว้น Visio ครับ สำหรับตัว Visio นะครับ เครื่องที่ไม่มี ก็ไม่ต้องตกใจนะครับ เพียงแค่นำ Script Registry ชุดนี้ไป Save เป้น .reg แก้ค่าที่เกี่ยวข้อง และรันมันครับ

[VSTO] วิธีแก้ปัญหาเมื่อลง Office Add inไม่ได้

สำหรับ Developer ที่ทำส่วนเสริมให้กับ Office หลายคนอาจจะเข้าใจว่ามีแต่ตัว VBA อย่างเดียวนะครับ แต่จริงๆแล้วเนี่ย MS Office สามารถให้เราปรับแต่ง Customize เพิ่มความสามารถด้วย .Net Framework ได้เหมือนกันนะครับ โดยเรียกรวมเป็น Office Add-in ซึ่งเมื่อ Code เสร็จ พอจะนำไปติดตั้งเราต้องลงตัว Visual Studio Tools for Office Runtime (VSTO)  เกริ่นมานานพอควรและ แต่เมื่อนำไปลงทดสอบที่ Site งาน พอดีดันไปเจอเครื่อง Windows 7 เครื่องนึงที่ลงไม่สำเร็จครับ โดยมี Message…

[C#] Shallow Copy กับ Deep Copy

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

[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 ที่ผมสนใจมี ดังนี้

[C#] คำแนะนำสำหรับการพัฒนา App แบบ Console เกี่ยวกับ Exit Code เพื่อทำงานเป็น Batch ผ่าน Schedule Task

วันนี้มาเขียน Blog ดึกไปหน่อย ถือว่าฉลองเดือนธันวาคมที่แสนอบอุ่นและกัน 555 มาเข้าเรื่องกัน โดยหลายๆครั้งที่เราต้องพัฒนา Console App เพื่อทำงานในลักษณะที่เป็น Background Process ถ้าเป็นการเรียกใช้งานผ่านตัว User หรือ Application อื่นๆ อย่าง WinForms โดยตรงมันก็ไม่มีปัญหาอะไรนัก แต่ถ้าเป็นการเรียกใช้ผ่าน Task Schedule หละ ? ปัญหาของผม คือ ว่า เราจะทำให้ตัว Task Schedule (หรืออาจจะเป็น App อื่นที่เรียกใช้ใน Batch) รู้ได้อย่างไรว่า Exe ที่เรียกใข้งาน มันทำงานเสร็จแล้ว ?…

[C#] สรุปข้อดี-ข้อเสียในการอ่านกับเขียน Excel จากวิธีต่างๆ

พอดีช่วงนี้มีงานที่ให้ดึงไฟล์จากเว็บมา และเรามาจัดแต่งรูปแบบไฟล์ Excel นั้น เพื่อ Import เข้าระบบครับ โดยผมได้ทดลองศึกษามา และขอเปรียบเทียบข้อดีข้อเสียไว้ เผื่อมีคนอื่นมาใช้งานครับ แนวทางที่ 1: การใช้ OLEDB แนวทางที่ 2: การใช้ Excel Interop Object แนวทางที่ 3: ใช้ Component เสริม Component เสริมที่เป็น Third Party ครับ ซึ่งมีอยู่มากมายลงหาจาก Google ดูครับ เช่น NPOI แนวทางที่ 4: ใช้ Excel VBA…

[PowerShell] Integrated PowerShell with C# Application

powershell

มาต่อบทความการใช้ C# กับ PowerShell สักที หลังจากไปลองสร้าง Winform Application จาก PowerShell เพียวๆกันแล้ว โดยคราวนี้ เราใช้โจทย์ของคราวที่แล้วแหละ โดยมีการออกแบบหน้าจอ ดังรูป จัดการ Add Code Event ต่างๆให้เรียบร้อย (อันนี้ผมใช้ Pattern MVP นะครับ เผื่อคนโหลดไปแกะ Code)จากนั้น เราต้องทำให้ C# รู้จักกับ PowerShell กันก่อน โดยการ Add Reference DLL เข้ามาใน Project ครับ โดยเราจะ Add DLL…