พืน ฐานการเขีย นโปรแกรม
้
ด้ว ย C#
เนื้อ หา






โครงสร้างโปรแกรม
ชนิดข้อมูล
ตัวแปร
นิพจน์
คำาสังแสดงผล
่
โปรแกรมภาษา C#


พิจารณาโปรแกรมต่อไปนี้
namespace HelloW {
namespace HelloW {
class HelloWClass {
class HelloWClass {
static void Main () {
static void Main () {
System.Console.WriteLine("Hello World!");
System.Console.WriteLine("Hello World!");
System.Console.ReadLine();
System.Console.ReadLine();
}
}
}
}
}
}
โปรแกรมภาษา C#






ตัวอักษรเล็ก/ใหญ่มีความสำาคัญ
คำาสังทุกคำาสังต้องปิดท้ายด้วย
่
่
เซมิโคลอน (;)
จำานวนช่องว่าง (ทังแนวตังแนวนอน)
้
้
ไม่มีผลต่อการทำางาน
ใช้เครื่องหมายปีกกา { } จับกลุมคำาสัง
่
่
ข้อความทีอยู่ระหว่าง /* * / หรือหลัง //
่
ถือเป็นคอมเม้นต์ ซึ่งไม่มีผลต่อการ
ทำางานของโปรแกรม
โครงสร้า งของโปรแกรม


จุดเริ่มต้นของโปรแกรมจะอยู่ที่:
static void Main ()
static void Main ()
{
{
... starting point ...
... starting point ...
}
}





เรียกว่าเมท็อด Main
เมท็อดต้องอยูภายใต้คลาส (class)
่
คลาสอาจอยูภายใต้เนมสเปส
่
(namespace) หรือไม่ก็ได้
โครงสร้า งของโปรแกรม



คลาสเปรียบเสมือนกล่องบรรจุเมท็อด
หลาย ๆ เมท็อด
เนมสเปสเปรียบเสมือนกล่องบรรจุคลาส
หลาย ๆ คลาส




เนมสเปสอาจอยู่ภายใต้เนมสเปสอื่นได้อีก

โปรแกรมหนึ่ง ๆ อาจประกอบด้วยหลาย
method1
เนมสเปส หรืออาจไม่อยูในเนมสเปสใด ๆ
่
Class
method2
เลยก็ได้
Namespace
โครงสร้า งของโปรแกรม
namespace HelloW {
namespace HelloW {
class HelloWClass {
class HelloWClass {
static void Main () {
static void Main () {
System.Console.WriteLine("Hello World!");
System.Console.WriteLine("Hello World!");
System.Console.ReadLine();
System.Console.ReadLine();
}
}
}
}
}
}



สำาหรับโปรแกรมอย่างง่าย



โปรแกรมประกอบด้วยคลาสเพียงคลาส
เดียว
โปรแกรมอาจประกอบด้วยเมท็อด Main
เพียงเมท็อดเดียว
คำา สั่ง (Statement)


คำาสังใช้อธิบายการทำางานของ
่
โปรแกรมในแต่ละขั้นตอน

Statement#1

Statement#2



class Hello {
class Hello {
static void Main () {
static void Main () {
System.Console.WriteLine("Hello World!");
System.Console.WriteLine("Hello World!");
System.Console.ReadLine();
System.Console.ReadLine();
}
}
}
}

เมท็อดถูกสร้างขึ้นจากคำาสังตังแต่หนึ่ง
่ ้
ถึงหลายคำาสัง
่
คำา สั่ง (Statement)
namespace HelloW {
namespace HelloW {
class HelloWClass {
class HelloWClass {
static void Main () {
static void Main () {
System.Console.WriteLine("Hello World!");
System.Console.WriteLine("Hello World!");
System.Console.ReadLine();
System.Console.ReadLine();
}
}
}
}
}
}
method1

method2
Statement#1
Statement#2
:

Class

Namespace
การตัง ชื่อ
้



ทั้งเมท็อด คลาส เนมสเปส ต้องมีการตั้งชือ
่
กำากับ
ในภาษา C# มีกฎการตั้งชือดังนี้
่







ตัวอย่างชือที่ถูกกฎ
่




ขึ้นต้นด้วยอักขระภาษาอังกฤษ (A-Z, a-z) หรือตัว
ขีดเส้นใต้ (_)
ส่วนทีเหลือประกอบด้วยอักขระภาษาอังกฤษ
่
ตัวเลข หรือตัวขีดเส้นใต้
ความยาวสูงสุด 63 ตัวอักษร
ต้องไม่ซ้ำ้ากับคำาสงวน (reserved words) เช่น class,
namespace
hEllO, E3_32ab, X_x_X022

ตัวอย่างชือที่ผิดกฎ
่
คำำ สงวน


คำำเหล่ำนี้หำมนำำไปใช้เป็นชือใน
้
่
ภำษำ C#
ตัว แปร (Variable)



ตัวแปรใช้สำำหรับเก็บค่ำของข้อมูล
กำรประกำศตัวแปร
<type> <name>;
<type> <name>;



กำรกำำหนดค่ำให้ตวแปร
ั
<name> = <expression>;
<name> = <expression>;



ตัวอย่ำง

int width, height;
int width, height;
int area;
int area;
width = 10; height = 20;
width = 10; height = 20;
area = width * height;
area = width * height;
ชนิด ข้อ มูล (Data T
ype)
ชนิด ขนำด
bool
char
sbyte
byte
short
ushort
int
uint
long
ulong
float
double
decimal
string

1 byte
2 byte
1 byte
1 byte
2 bytes
2 bytes
4 bytes
4 bytes
8 bytes
8 bytes
4 bytes
8 bytes
16 bytes
N/A

ควำมหมำย

ค่ำควำมจริง (จริง-เท็จ)
อักขระโดด
จำำนวนเต็ม
จำำนวนเต็มไม่ติดลบ
จำำนวนเต็ม
จำำนวนเต็มไม่ติดลบ
จำำนวนเต็ม
จำำนวนเต็มไม่ติดลบ
จำำนวนเต็ม
จำำนวนเต็มไม่ติดลบ
จำำนวนจริง
จำำนวนจริงควำมละเอียดสองเท่ำ
จำำนวนจริงควำมละเอียดสูง
สำยอักขระ

ช่ว ง
true / false
character code 0...65535
-128...127
0...255
-32,768...32,767
0...65535
-2.1 x 109...2.1 x 109
0...4.3 x 109
-9.2 x 1018...9.2 x 1018
0...1.8 x 1019
±1.5x10-45...±3.4x1038
±5.0x10-324...±1.7x10308
±1.0x10--28...±7.9x1028
N/A
กำรกำำ หนดค่ำ ให้ต ัว แปร




เรำสำมำรถกำำหนดค่ำเริ่มต้นให้กับ
ตัวแปรได้พร้อมกับกำรประกำศ
ตัวแปรนัน ๆ ได้ทนที
้
ั
ตัวอย่ำง
int width = 10, height = 20;
int width = 10, height = 20;
int area;
int area;
area = width * height;
area = width * height;
นิพ จน์ (E
xpressions)


นิพ จน์เป็นส่วนหนึ่งของคำำสังทีถูก
่ ่
เป็
ประเมินเป็นค่ำได้




อำจเป็นค่ำโดดหรือประกอบขึ้นมำจำก
นิพจน์ที่เล็กกว่ำ

ตัวอย่ำงของนิพจน์ที่เป็นค่ำโดด






ตัวเลข  , 3.1415
3212
อักขระ 
'C'
ค่ำควำมจริง 
true or false
ข้อควำม 
"Hello, World"
ตัวแปรหรือค่ำคงที่  , myName
x
นิพ จน์ท างคณิต ศาสตร์



นิพจน์ทางคณิตศาสตร์ (arithmetic expression)
คือนิพจน์ที่ถูกตีความเป็นค่าจำานวน
นิพจน์ทางคณิตศาสตร์สามารถนำามาประกอบ
เป็นนิพจน์ที่ซับซ้อนขึ้นได้โดยอาศัยตัวดำาเนิน
การทางคณิตศาสตร์ (arithmetic operators)

+, -, *, /




%

(ให้ค่าเศษจากการหาร)

ตัวอย่าง






11+5
11/2
11.0/2
11%2
5.0%2.2

 16
5
 5.5
1
 0.6
ลำา ดับ การคำา นวณ
(P
recedence Rules)
1.
2.
3.
4.

()
*, / , %
+, –
ซ้ายไปขวา

int Width,Height;
Width = 10*5+(16 * 12)/5;
Height = (16+5)+20%2;
การหารแบบจำา นวนเต็ม


การหารนิพจน์ที่เป็นจำานวนเต็มสอง
จำานวนให้ผลลัพธ์เป็นจำานวนเต็มเสมอ




เศษจะถูกปัดทิ้ง

หากตัวตั้งและ/หรือตัวหารเป็นจำานวน
ทศนิยม (float หรือ double) การหารจะ
int
i1
10, i2
8;
คำintนวณทศนิย=มให้
า i1 == 10, i2 == 8;
double f1 = 10, f2 = 8;
double f1 = 10, f2
8;
double r1 = i1/i2;
double r1 = i1/i2;
double r2 = f1/f2;
double r2 = f1/f2;
double r3 = f1/i2;
double r3 = f1/i2;
double r4 = i1/f2;
double r4 = i1/f2;

// r1 = 1
// r1 = 1
// r2 = 1.25
// r2 = 1.25
// r3 = 1.25
// r3 = 1.25
// r4 = 1.25
// r4 = 1.25

double r1 = 10/8;
double r1 = 10/8;
double r2 = 10.0/8.0;
double r2 = 10.0/8.0;
double r3 = 10.0/8;
double r3 = 10.0/8;
double r4 = 10/8.0;
double r4 = 10/8.0;

// r1 = 1
// r1 = 1
// r2 = 1.25
// r2 = 1.25
// r3 = 1.25
// r3 = 1.25
// r4 = 1.25
// r4 = 1.25
คำา สั่ง using




การใช้คำาสัง using <ชื่อเนมสเปส> ที่ต้น
่
โปรแกรมเป็นการระบุว่าเราต้องการเรียก
ใช้งานคลาสในเนมสเปสนั้น ๆ
ตัวอย่าง: คลาส Console อยูในเนมสเปส
่
System
class Hello {{
class Hello
static void Main () {{
static void Main ()
System.Console.WriteLine("Hello World!");
System.Console.WriteLine("Hello World!");
System.Console.ReadLine();
System.Console.ReadLine();
}}
}}
using System;
using System;
class Hello {{
class Hello
static void Main () {{
static void Main ()
Console.WriteLine("Hello World!");
Console.WriteLine("Hello World!");
Console.ReadLine();
Console.ReadLine();
}}
}}
คำา สั่ง สำา หรับ แสดงผลทาง
หน้าำาจอ หรือ WriteLine ซึ่งอยู่ในคลาส
 ใช้ค สั่ง Write
Console (ซึ่งอยู่ในเนมสเปส System อีกทีหนึง)
่



การใช้งานพื้นฐาน:

Console.WriteLine("Hello");
Console.WriteLine("Hello");
Console.WriteLine(area);
Console.WriteLine(area);



การใช้งานชันสูง:
้
Console.WriteLine(”Size {0}x{1}”, width, height);
Console.WriteLine(”Size {0}x{1}”, width, height);

double salary=12000;
double salary=12000;
Console.WriteLine("My salary is {0:f2}.", salary);
Console.WriteLine("My salary is {0:f2}.", salary);