วันพฤหัสบดีที่ 28 ธันวาคม พ.ศ. 2560

Constructor กับ Destructors ต่างกันอย่างไร

Constructor คือ method ที่มีชื่อเดียวกันกับ Class
Destructors คือ method ที่สั่งให้ class ทำตามคำสั่งที่ method สั่งงานก่อนที่จะสิ้นสุดการทำงานของ class (สลาย class)

ความแตกต่าง
class D1
{
  public D1() {
    Console.WriteLine("Constructor");
  }
  ~D1() {
    Console.WriteLine("Destructor");
  }
}
static void Main(string[] args) {
  D1 d = new D1();
}
ผลลัพธ์
Constructor
Destructor
จะเห็นได้ว่า ก่อนสิ้นสุดการทำงานในการเรียกใช้งาน class จะมีการเรียกใช้  ~D1() ซึ่งเป็น Destructors ด้วย

วันจันทร์ที่ 18 ธันวาคม พ.ศ. 2560

เขียน-อ่านไฟล์ txt ใน C#

การอ่านไฟล์ใน C#
System.IO.File.ReadAIIText(ที่ตั้งไฟล์);
ใช้อ่านไฟล์ทั้งไฟล์คืนค่า string
System.IO.File.ReadAIILines(ที่ตั้งไฟล์); อ่านไฟล์แต่ละบรรทัดเก็บไว้ใน string[]
การเขียนไฟล์ใน C#
System.IO.File.WriteAIIText(ที่ตั้งไฟล์,ข้อความที่เป็นสตริง); ใช้เขียนไฟล์โดยใช้ข้อความสตริง
System.IO.File.AppendAIILines(ที่ตั้งไฟล์,string[]); ใช้เขียนไฟล์โดยใช้ข้อมูลจาก string[]

วันพฤหัสบดีที่ 2 พฤศจิกายน พ.ศ. 2560

วันพฤหัสบดีที่ 26 ตุลาคม พ.ศ. 2560

วันจันทร์ที่ 4 กันยายน พ.ศ. 2560

จาก Python สู่ C# : enumerate ในการลูป for

คนที่ใช้ Python คงคุ้นเคยกับการลูปโดยใช้คำสั่ง enumerate ซึ่งเป็นคำสั่งสำหรับรับค่า index และข้อมูลใน index นั้น แต่ใน C# กลับไม่มีความสามารถนี้ แต่เราสามารถทดแทนความนี้ได้ตามนี้

หากเราต้องการเขียนเป็น C# ทำได้ตามนี้

จะเห็นได้ว่าใน C# เราจะไม่ใช่ for เหมือน Python ในกรณีที่ต้องการลูปค่าจากค่าที่มีอยู่แล้ว

วันอาทิตย์ที่ 3 กันยายน พ.ศ. 2560

คำสั่งเงื่อนไข switch ใน C#

คำสั่ง switch เป็นการตรวจสอบเงื่อนไขหนึ่งใน C#  โดยคล้ายกับในภาษา C/C++
แต่ในภาษา Python ไม่มี switch

ไวยากรณ์

วันอาทิตย์ที่ 20 สิงหาคม พ.ศ. 2560

C# ฉบับภาษาคนคอม : ตอนที่ 1 : ภาษาคอม C# ???

สวัสดีจ้ะที่รัก ฉันคือ C# ฉันรักทุกคน มาเล่นหิมะกันม่า ~~~ /ผิด -_-
ฉันมีชื่อว่า C# เทอมนี้ทุกคนคงได้เจอฉันมาแล้ว แต่ฉันอยากแนะนำตัวเองให้มากขึ้น (อย่าทำหน้าเกลียดฉันเลย T_T)

วันศุกร์ที่ 18 สิงหาคม พ.ศ. 2560

ตัวดำเนินการ (Operator) ในภาษา C#

ตัวดำเนินการ (Operator) มีไว้สำหรับดำเนินการโปรแกรม โดยในภาษา C# ตัวดำเนินการจะคล้าย ๆ กับภาษา Python อยู่มากดังนี้

เนมสเปซ (Namespace) และ แอสเซมบลี (Assembly) ใน C#

แอสเซมบลี (Assembly) คือ โค้ดภาษา C# ที่ผ่านการคอมไพล์แล้ว ซึ่งอาจเป็นไฟล์ .dll / .so หรือ .exe แต่โค้ดภาษา C# ที่เป็นแอสเซมบลี ไม่ใช่ภาษาเครื่อง แต่เป็นโค้ด MSIL (MSIL หรือ Microsoft Intermediate Language เป็นโค้ดชั่วคราว ไม่ขึ้นกับระบบหรืออุปกรณ์ ก่อนที่จะเรียกใช้งานโค้ด MSIL จะต้องถูกคอมไพล์ให้เป็นภาษาเครื่องโดยอัตโนมัติในหน่วยความจำ ในกระบวนการที่คอมไพล์โค้ด MSIL คือ Just-in-Time compiler)

เนมสเปซ (Namespace) คอยกำหนดขอบเขตชื่อเรียกของโค้ดส่วนต่าง ๆ ที่อยู่ภายในแอสเซมบลี ช่วยในการหลีกเลี่ยงการใช้ชื่อซ้ำในโค้ดได้

ตรงคีย์เวิร์ด using มันจะอ้างอึงถึงเนมสเปซของโค้ดที่คอมไพล์ในแอสเซมบลี คล้ายกับ import ไลบารีใน Python ที่มีการดึงโค้ด .pyc ที่ผ่านการคอมไพล์มาแล้วรันร่วมกับโค้ดที่ใช้งานนั่นเอง

คำสั่งเงื่อนไข if else ใน C#

หากคุณต้องการให้โปรแกรมทำตามคำสั่งที่กำหนดเงื่อนไขไว้ คุณจะต้องใช้ if else เข้ามาช่วยดังนี้

วันพฤหัสบดีที่ 10 สิงหาคม พ.ศ. 2560

การ Comment ใน C#

comment หลายบรรทัด ใช้
/*
โค้ด
*/
comment บรรทัดเดียว ใช้
//
ต่างจาก Python ที่เป็น #แต่ละบรรทัด และ
"""
โค้ด
"""
จะคล้าย C/C++ หรือ Java มากกว่า

วันพฤหัสบดีที่ 3 สิงหาคม พ.ศ. 2560

ชนิดข้อมูลและการประกาศตัวแปรใน C#

ตัวแปร (Variables) เป็นตัวแทนข้อมูลที่เก็บไว้ในหน่วยความจำ ที่เรียกว่าตัวแปร เพราะข้อมูลที่เก็บอยู่สามารถเปลี่ยนแปลงได้เมื่อรันโปรแกรม

วันพฤหัสบดีที่ 9 กุมภาพันธ์ พ.ศ. 2560

จาก Python สู่ C#

สวัสดีครับ หลังจากที่ผมได้เขียน Python มาได้ค่อนข้างจะยาวนาน ผมเริ่มสนใจภาษาอื่น ๆ ที่นอกจาก Python หนึ่งในนั้นคือ C# และผมได้ลองฝึกเขียน C# บน .NET Core ผมพบว่าผมรู้จักถูกใจกับภาษานี้ ผมจึงเขียนบล็อกขึ้นมา เพื่อจดบันทึกการเรียนรู้ภาษา C# และภาษาอื่น ๆ บน .NET Core ครับ