แสดงบทความที่มีป้ายกำกับ C# แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ C# แสดงบทความทั้งหมด

วันพฤหัสบดีที่ 25 มีนาคม พ.ศ. 2553

simple WPF Application

วันนี้เราจะลองมาเขียน WPF Application ตัวแรกกันนะครับ
เริ่มต้นมา เปิด Visual Studio 2008 SP1 จากนั้นให้เลือก File -> New -> Project
แล้วก็เลือก ชนิดของ project เป็น WPF Application ดังแสดงในภาพ



จากนั้นกด OK ไอ่เจ้า Visual Studio ก็จะทำการสร้าง files ต่างๆ ที่เป็นพื้นฐานให้โดยอัตโนมัติ ดังรูป



จากนั้นเปิดไฟล์ Window1.xaml ขึ้นมา แล้วก็ลาก Button และ Textbox control จาก toolbox ทางด้านซ้ายมือ ดังรูป



หลังจากนั้นให้คลิกที่ Button ที่เราลากมา แล้วกดที่ Icon สีเหลืองที่เป็นรูปสายฟ้า ( Event icon ) จากนั้นให้ดับเบิ้ลคลิก ในช่องที่ด้านหน้าเขียนว่า Click ( หมายถึงว่า เมื่อคลิกปุ่มนี้แล้วจะให้โปรแกรมทำงานอย่างไร )



เมื่อคลิกเสร็จ Visual Studio จะสร้างฟังก์ชันให้้หนึ่งตัว แล้วเหลือพื้นที่ว่างให้เราเขียน code ว่าเมื่อ button ถูกคลิกเราจะให้มันทำอะไร จากนั้นก็เติม code ด้านล่างลงไป แบบนี้

private void button1_Click(object sender, 
    RoutedEventArgs e)
{
    textBox1.Text = "Hello WPF!";
}


ผลลัพธ์ที่ได้คือ ถ้าเรากดคลิกปุ่ม Say Hello! มันจะทำการ เปลี่ยนค่าใน textbox ให้กลายเป็นคำว่า Hello WPF! ตามนี้ครับ


จบบทความนี้ก่อนนะครับ คราวหน้าเราจะมาพูดถึงในรายละเอียดที่มากกว่านี้ โชคดีทุกคนครับ

วันจันทร์ที่ 22 มีนาคม พ.ศ. 2553

.NET Stong type

อันนี้คือ concept ตั้งแต่ .Net 2.0 แล้วนะครับ คือ object ที่สาำมารถรู้ได้ทันทีว่าเป็น object ชนิดไหนตั้งแต่ตอน compile time เพื่อลดการ boxing และ unboxing

ยกตัวอย่างเช่น

กรณีที่ไม่เป็น strong type
ArrayList ar = new ArrayList(); // คุณสามารถ add อะไรก็ได้แข้า arraylist ตัวนี้
ar.Add("CCC"); // adding string
ar.Add(new object()); // adding object

กรณีที่เป็น stong type
List<string> ar2 = new List<string>();
ar2.Add("BBB"); // คุณจะ add ได้เฉพาะ string เท่านั้น เพราะว่าคุณระบุว่าจะรับ type แค่ string

กรณีของ strong type ถ้าคุณ add object ที่ไม่ใช่ string จะ compile ไม่ผ่าน และการทำงานแบบ strong type ก็จะทำงานเร็วกว่าด้วยครับ

การ Get IP address

C# เรามีวิธี get ค่า IP Address ได้แล้วหลายวิธีด้วยกัน จาก .Net library ที่มีให้
แต่ผมเจออันนึงครับ ถ้าเราจะ get ip address จาก hostname ต้องใช้แบบนี้เท่านั้น ไม่งั้นเจอบั๊กเต็มๆ อันนี้เป็นประสบการณ์มาแชร์กันครับ

IPHostEntry a = Dns.GetHostEntry(Dns.GetHostName()); แบบนี้ไม่ work ทุกกรณีครับ
IPHostEntry b = Dns.GetHostByName(Dns.GetHostName()); ต้องใช้แบบนี้ครับ