พืน ฐานการเขีย นโปรแกรม
  ้
ด้ว ย 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
              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#2




   เมท็อดถูกสร้างขึ้นจากคำาสังตังแต่หนึง
                              ่ ้       ่
    ถึงหลายคำาสัง
                ่
คำา สั่ง (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
                           Class        Namespace
       Statement#1
       Statement#2
            :
การตั้ง ชื่อ
   ทั้งเมท็อด คลาส เนมสเปส ต้องมีการตั้งชือ
                                           ่
    กำากับ
   ในภาษา C# มีกฎการตั้งชือดังนี้
                           ่
       ขึ้นต้นด้วยอักขระภาษาอังกฤษ (A-Z, a-z) หรือตัว
        ขีดเส้นใต้ (_)
       ส่วนทีเหลือประกอบด้วยอักขระภาษาอังกฤษ
               ่
        ตัวเลข หรือตัวขีดเส้นใต้
       ความยาวสูงสุด 63 ตัวอักษร
       ต้องไม่ซำ้ากับคำาสงวน (reserved words) เช่น class,
        namespace
   ตัวอย่างชือที่ถูกกฎ
              ่
       hEllO, E3_32ab, X_x_X022
   ตัวอย่างชือที่ผิดกฎ
              ่
คำา สงวน
   คำาเหล่านี้หามนำาไปใช้เป็นชือใน
                ้               ่
    ภาษา C#
ตัว แปร (Variable)
   ตัวแปรใช้สำาหรับเก็บค่าของข้อมูล
   การประกาศตัวแปร
      <data type> <variable name>;
       <data type> <variable 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 Type)
ชนิด ขนาด                    ความหมาย                         ช่ว ง
bool      1 byte     ค่าความจริง (จริง-เท็จ)        true / false
char      2 byte     อักขระโดด                      character code 0...65535
sbyte     1 byte     จำานวนเต็ม                     -128...127
byte      1 byte     จำานวนเต็มไม่ติดลบ             0...255
short     2 bytes    จำานวนเต็ม                     -32,768...32,767
ushort    2 bytes    จำานวนเต็มไม่ติดลบ             0...65535
int       4 bytes    จำานวนเต็ม                     -2.1 x 109...2.1 x 109
uint      4 bytes    จำานวนเต็มไม่ติดลบ             0...4.3 x 109
long      8 bytes    จำานวนเต็ม                     -9.2 x 1018...9.2 x 1018
ulong     8 bytes    จำานวนเต็มไม่ติดลบ             0...1.8 x 1019
float     4 bytes    จำานวนจริง                     ±1.5x10-45...±3.4x1038
double    8 bytes    จำานวนจริงความละเอียดสองเท่า   ±5.0x10-324...±1.7x10308
decimal   16 bytes   จำานวนจริงความละเอียดสูง       ±1.0x10--28...±7.9x1028
string    N/A        สายอักขระ                      N/A
การกำา หนดค่า ให้ต ัว แปร
   เราสามารถกำาหนดค่าเริ่มต้นให้กับ
    ตัวแปรได้พร้อมกับการประกาศ
    ตัวแปรนัน ๆ ได้ทนที
             ้      ั
   ตัวอย่าง
        int width = 10, height = 20;
         int width = 10, height = 20;
        int area;
         int area;

        area = width * height;
         area = width * height;
นิพ จน์ (Expressions)
   นิพ จน์เป็นส่วนหนึ่งของคำาสังที่ถก
           เป็                  ่    ู
    ประเมินเป็นค่าได้
       อาจเป็นค่าโดดหรือประกอบขึ้นมาจาก
        นิพจน์ที่เล็กกว่า
   ตัวอย่างของนิพจน์ทเป็นค่าโดด
                      ี่
       ตัวเลข  , 3.1415
                3212
       อักขระ 'C'
       ค่าความจริง  true or false
       ข้อความ  "Hello, World"
       ตัวแปรหรือค่าคงที่  , myName
                              x
นิพ จน์ท างคณิต ศาสตร์
   นิพจน์ทางคณิตศาสตร์ (arithmetic expression)
    คือนิพจน์ที่ถูกตีความเป็นค่าจำานวน
   นิพจน์ทางคณิตศาสตร์สามารถนำามาประกอบ
    เป็นนิพจน์ที่ซับซ้อนขึ้นได้โดยอาศัยตัวดำาเนิน
    การทางคณิตศาสตร์ (arithmetic operators)
    
       +, -, *, /
       %   (ให้ค่าเศษจากการหาร)
   ตัวอย่าง
       11+5        16
       11/2       5
       11.0/2      5.5
       11%2       1
       5.0%2.2     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;   // r1 = 1
                           // r1 = 1
    double r2 = f1/f2;
     double r2 = f1/f2;   // r2 = 1.25
                           // r2 = 1.25
    double r3 = f1/i2;
     double r3 = f1/i2;   // r3 = 1.25
                           // r3 = 1.25
    double r4 = i1/f2;
     double r4 = i1/f2;   // r4 = 1.25
                           // r4 = 1.25

    double r1 = 10/8;
     double r1 = 10/8;       // r1 = 1
                              // r1 = 1
    double r2 = 10.0/8.0;
     double r2 = 10.0/8.0;   // r2 = 1.25
                              // r2 = 1.25
    double r3 = 10.0/8;
     double r3 = 10.0/8;     // r3 = 1.25
                              // r3 = 1.25
    double r4 = 10/8.0;
     double r4 = 10/8.0;     // r4 = 1.25
                              // r4 = 1.25
คำา สั่ง using
   การใช้คำาสั่ง using <ชื่อเนมสเปส> ที่ต้น
    โปรแกรมเป็นการระบุว่าเราต้องการเรียก
    ใช้งานคลาสในเนมสเปสนั้น ๆ
   ตัวอย่าง: คลาส Console อยู่ในเนมสเปส
      class Hello {{
       class Hello
    System
         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);