วิชาการดอทคอม ptt logo

ฝึกเขียนโปรแกรมพื้นฐานด้วย Visual C#

ความรู้ด้านการเขียนโปรแกรมสำหรับผู้เริ่มต้น แม้ไม่เคยเขียนโปรแกรมมาก่อนก็เข้าใจได้ไม่ยาก
ผู้เขียน: สร้างโดย: อ.โอ๊ค - อนุญาติให้: แก้ไขได้โดยสมาชิกทุกคน ชมแล้ว: 813,314 ครั้ง
post ครั้งแรก: Sun 31 May 2009, 9:54 pm ปรับปรุงล่าสุด: Fri 21 December 2012, 10:23 am
อยู่ในส่วน: ไม่ได้ระบุว่าให้อยู่ห้องใด

หน้าที่ 3 - ส่วนประกอบในโค้ดของภาษา C#

 

ก่อนเราจะเขียนโค้ดกัน มาทำความรู้จักกับเครื่องหมายต่างๆของภาษา C# กันก่อนดีกว่าครับ

Comment (ส่วนอธิบายโค้ด)
คือ การแทรกข้อความหรือประโยคเพื่อทำการอธิบายโค้ดโปรแกรมที่เราเขียนขึ้นมา จะเห็นประโยชน์ของมันเมื่อเราเขียนโค้ดโปรแกรมใหญ่ๆที่มีความซับซ้อนมากๆ ส่วนอธิบายโค้ดจะช่วยลดเวลาในการไล่โค้ดได้ดีมาก ในส่วนของคำอธิบายโปรแกรมจะไม่ให้ความสนใจ (จะอ่านโค้ดข้ามส่วนคำอธิบายไป)
การแทรกส่วนอธิบายโค้ดมีอยู่ 2 แบบ คือ

  • // คำอธิบาย (ในกรณีที่คำอธิบายมีบรรทัดเดียว)

    เช่น  // ส่วนคำอธิบาย โปรแกรมจะไม่อ่านในส่วนนี้
          // โค้ดส่วนนี้ยังไม่เสร็จสมบูรณ์ ควรแก้ไข

  • /*คำอธิบาย
    คำอธิบาย (ในกรณีที่คำอธิบายมีหลายบรรทัด)
    คำอธิบาย*/

    เช่น 
    /* โค้ดการทำงานของ if คือการตรวจสอบเงื่อนไข
              ซึ่งถ้าเงื่อนไขเป็นจริงให้เข้ามาทำใน { } ของ if แต่
              ถ้าเงื่อนไขเป็นเท็จจะไม่ทำคำสั่งใดๆ */

คำสั่งหลัก
คือ คำสั่งที่มีหน้าที่เฉพาะเจาะจง ในที่นี้หมายถึง คำสั่งจำพวก การตัดสินใจ เช่น if-else, switch คำสั่งการวนซ้ำ เช่น for , while, do….while ซึ่งคำสั่งหลักจะมีขอบเขตการทำงานที่แน่นอน โดยจะพูดถึงขอบเขตการทำงานในข้อถัดไป ยกตัวอย่างคำสั่งหลัก if เช่น

if(....)
{
    .....
}


** จุดสังเกต คำสั่งหลักจะมีเครื่องหมาย
บอกขอบเขตหรือไม่มีก็ได้ และจะเป็น
ที่รวบรวมคำสั่งย่อยเอาไว้

คำสั่งย่อย
คือ คำสั่งที่เกิดจากเรียก method มาใช้งาน หรือเขียนนิพจน์ทางคณิตศาสตร์เพื่อเพิ่มค่าให้กับตัวแปร
ยกตัวอย่างคำสั่งย่อย เช่น

Console.WriteLine( "Hello How're you" );
int a = int.Parse( Console.ReadLine( ) );
a+1;


Block (ขอบเขตคำสั่ง)
คือ สัญลักษณ์ที่จะบอกขอบเขตการทำงานของแต่ละ function หรือ procedure
"และเป็นส่วนที่บรรจุคำสั่งต่างๆ (ตั้งแต่ 1 บรรทัดขึ้นไป) หรืออาจจะบรรจุบล๊อคย่อยๆได้อีกหลายบล๊อคเช่นกัน

  • {    คำสั่ง    } // ตัวอย่างของบล๊อคที่บรรจุคำสั่งเพียงบรรทัดเดียว
    (ในกรณีที่มีคำสั่งเพียง 1 บรรทัด ไม่จำเป็นต้องมี { } ก็ได้)

  • {
         คำสั่ง 1 ;
         คำสั่ง 2 ; // ตัวอย่างบล๊อคที่บรรจุคำสั่งหลายบรรทัด
         คำสั่ง 3 ;
    }
  • {
        {
              คำสั่ง 1 ; // ตัวอย่างบล๊อคที่บรรจุบล๊อคย่อย
              คำสั่ง 2 ;
        }
    }

Semi Colon เครื่องหมายสิ้นสุดคำสั่ง (;)
คือ สัญลักษณํแทนการสิ้นสุดคำสั่งแต่ละคำสั่ง
(แต่ละคำสั่งจะต้องปิดท้ายด้วย ; ซึ่งหมายถึงจบคำสั่งนั้นๆ)
จะไม่ใช้ในการปิดบล๊อค (ขอบเขตของคำสั่ง)

  • คำสั่ง 1;
    คำสั่ง 2;
    คำสั่ง 3;
  • คำสั่ง 1; คำสั่ง 2; คำสั่ง 3;

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

Method สามารถแบ่งได้เป็น 2 ประเภท คือ

  • Function (ฟังก์ชั่น)
    เป็น Method ที่จะมีการส่งค่ากลับ เช่นเมื่อเราเรียกใช้งาน เราจะต้องนำตัวแปรมารับค่าที่ถูกส่งมาจาก Function
    (จะขอกล่าวโดยละเอียดในบทถัดไป)
  • Procedure (โพรซีเจอร์)
    เป็น Method ที่ไม่มีการส่งค่ากลับคืน เมื่อเราเรียกใช้จะไม่มีตัวแปรใดๆมารับค่า

Namespace > Class > Method > Property
เราสามารถกล่าวได้ว่า namespace คืออ๊อบเจ็ค(object)ในทางโปรแกรมมิ่ง(รายละเอียดมีในส่วนของหัวข้อ Object) และส่วนที่บรรจุ class ต่างๆเอาไว้ ซึ่ง class เป็นเสมือนตัวบอกชนิดของ object อีกทีนึง จากนั้นภายใน class จะประกอบไปด้วย Method(ความสามารถ) , Method โปรแกรมหลัก และ Property(คุณสมบัติ) สามารถเขียนโค้ดออกมาคร่าวๆได้ดังนี้เพื่อแสดงในส่วนของ Namespace > Class > Method > Property

using System;
// ในส่วนหัวของโปรแกรมจะมีการเรียกใช้ namespace ต่างๆ ซึ่งแต่ละ namespace ก็มีหน้าที่แตกต่างกัน
// รูปแบบ using [ชื่อ namespace] ;

namespace Test
{
    class MyFirstProgram
    {
          static void Main(string[]arg)
          {
                คำสั่ง ;
                ....
                ....        // ในส่วนของการเขียนโปรแกรมพื้นฐาน นี่จะเป็นส่วนสำคัญ เพราะโปรแกรมจะทำงาน
                คำสั่ง ;   // อ่านโค้ดในส่วนนี้ {} ของ static void Main(string[]arg)
          }
    }
}


Identifier (ไอเด็นติฟายเออร์)
คือ ชื่อที่ใช้สำหรับกำหนดให้กับส่วนประกอบต่างๆของโปรแกรม ไม่ว่าจะเป็น ตัวแปร ฟังก์ชั่น โพรซีเจอร์
(เป็นชื่อที่เราจะสามารถตั้งให้กับตัวแปรเก็บค่าต่างๆหรือชื่อฟังก์ชั่นได้ โดยมีเงื่อนไขตามแต่ละภาษากำหนด)
ประเภทของ Identifier มีดังนี้ คือ

  • Reserved Word (คำสงวน)
    คือ คำที่มีความหมายและเงื่อนไขการใช้ที่แน่นอน และไม่สามารถนำไปตั้งเป็นชื่อของตัวแปรได้

    auto , string , int, double, goto, case, do, while, if, else, break
    float, for, foreach, continue, default, long, void, enum, struct
    stack, const, return, switch, in, class, checked, override, event
    null, lock, random, private, public, protected, char, ref


    ** คำสงวนไม่จำเป็นต้องท่องนะครับ เมื่อได้ใช้บ่อยๆก็จะคุ้นเคยโดยอัตโนมัติ
    ** คำสงวนภายในโปรแกรม Visual Studio จะแสดงเป็นสีน้ำเงิน

  • User-Define Identifier
    คือ ชื่อที่ผู้เขียนโปรแกรมจะต้องตั้งให้กับตัวแปร ฟังก์ชั่น และ เม็ดตอด ต่างๆ เพื่อเป็นการระบุหน้าที่
    การใช้งานที่แตกต่างกันของแต่ละตัวแปร (หลักการตั้งชื่อตัวแปรจะขอกล่าวในบทถัดไป)



*หมายเหตุ งานเขียนชิ้นนี้ ได้รับการคุ้มครองสิทธิตามพระราชบัญญัติคุ้มครองสิทธิทางปัญญา โดยลิขสิทธิเป็นของผู้เขียน ที่ให้เกียรตินำเผยแพร่ผ่าน วิชาการ.คอม เรามีความยินดีและอนุญาตให้ทำซ้ำหรือเผยแพร่ต่อเพื่อประโยชน์ทางการศึกษาเท่านั้น กรุณาให้เกียรติผู้เขียน โดยอ้างชื่อผู้เขียนและ วิชาการ.คอม (www.vcharkarn.com) ทุกครั้งที่ทำการเผยแพร่ต่อ ห้ามนำส่วนหนึ่งส่วนใดไปเผยแพร่ต่อในสื่อที่เอื้อประโยชน์ทางธุรกิจก่อนได้รับอนุญาต ขอขอบคุณที่ร่วมกันช่วยสร้างให้สังคมไทยเป็นสังคมแห่งปัญญา






จำไว้ตลอด

จำนวน 43 ความเห็น, หน้า | 1 | 2 | 3 |
ความเห็น 24 11 ธ.ค. 2552 (13:37)

ขอบคุณมากๆค่ะ  พอดีได้เข้ามาอ่านเพราะว่าสนใจทางด้านนี้

ยังไงถ้าพี่ๆมาอะไรก็แนะนำด้วยนะค่ะ

เพราะอนากเรียนวิทยาการคอมมากๆเลยค่ะ


MinMint
ร่วมแบ่งปัน1 ครั้ง - ดาว 50 ดวง

ความเห็น 25 15 เม.ย. 2553 (00:00)
ขอบคุณค่ะ
peat_24
ร่วมแบ่งปัน1 ครั้ง - ดาว 53 ดวง

ความเห็น 26 29 มิ.ย. 2553 (19:44)
ได้ความรู้มากขึ้น ดีค่ะ

ขอบคุณ นะคะ

ขอให้มีแบบนี้ อีก ค่ะ

เข้า ใจ ง่ายขึ้น ด้วย

^ ^"
bellbom
ร่วมแบ่งปัน1 ครั้ง - ดาว 52 ดวง

ความเห็น 27 5 ก.ค. 2553 (13:15)
เรียนกับอาจารย์ที่โรงเรียนไม่รู้เรื่องเลย
แต่พอมาอ่านเนื้อหาที่นี่ก็เข้าใจขึ้นมากเลยค่ะ
ขอบคุณมากค่ะ
gam2514
ร่วมแบ่งปัน3 ครั้ง - ดาว 64 ดวง

ความเห็น 28 5 ก.ค. 2553 (13:22)
ขอบคุณมากเลยครับ
อย่างนี้สอบก็คงผ่านได้สบายเลย ^0^
oooTABooo
ร่วมแบ่งปัน1 ครั้ง - ดาว 30 ดวง

ความเห็น 29 20 ก.ค. 2553 (11:02)
อ.ครับผมพึ่งศึกษาการเขียนโปรแกรมใหม่ๆๆเลย บทเรียนของอ.เป็นประโยชน์มาก พูดเข้าใจง่าย ผมกำลังจะเริ่มเขียนอยากให้แนะนำครับว่าจะเขียนC#เลยดีไหมหรือต้องเขียนภาษาที่ง่ายให้คล่องก่อน และC#กับJavaอัไหนใหม่กว่าครับ
noy_ap
ร่วมแบ่งปัน1 ครั้ง - ดาว 50 ดวง

ความเห็น 30 20 ก.ค. 2553 (17:02)
สวัสดีค่ะ +++อาจารย์

หนูเพิ่งเข้ามาเป็นสมาชิก และตอนนี้หนูเรียนภาษา c# อยู่ซึ่งเรียนไม่รุเรื่องเลยค่ะ อาจารย์ที่โรงเรียนสอนหนู งงมาก
เวลาอาจารย์ให้รันโปรแกรม หฯทำไม่ได้หนูไม่เข้าใจ

หนูเลยอยากให้อาจารย็ช่วยสอนในเรื่องที่หนูไม่เข้าใจด้วยค่ะ

พร้อมโจทย์ตัวอย่าง มาให้หนูฝึกเขียนด้วยนะค่ะ (เอาเฉลยแนบมาด้วยนะค่ะ และอธิบายมาด้วยค่ะ)

ตอนนี้หนูกำลังเรียน
V
V
V

การประกาศตัวแปรและการตั้งชื่อ
การเรียกใช้โปรแกรม
การใช้วนลูป for while do while
คอลโทลต่างๆ
-from
-button
-tex box
-label
safpimo
ร่วมแบ่งปัน2 ครั้ง - ดาว 50 ดวง

ความเห็น 31 24 ก.ค. 2553 (10:50)
ขอบคุณ คุณMinMint, peat_24, bellbom, gam2514, oooTABooo, noy_ap, safpimo มากครับสำหรับคำติชม และให้ความสนใจ เป็นกำลังใจให้ อ. อยากพัฒนาบทเรียนต่อไปนะ ^^

ตอบ คุณ noy_ap
C# ใหม่กว่า java ครับ แต่ที่ยังได้รับความนิยมมากๆในปัจจุบันยังเป็น java ครับ เนื่องด้วยมันเป็น open source
เลือกเขียน C# เป็นภาษาเริ่มต้นเลยก็ได้ครับ เพราะยังไงๆ ก็ถือเป็นภาษาระดับสูงอยู่แล้ว เข้าใจไม่ยากอยู่แล้วครับ (สู้ๆนะ เอาใจช่วย)

ตอบ คุณ safpimo
อ. ฟังไม่ผิดใช่มั้ย ระดับ โรงเรียนเดี๋ยวนี้สอน C# แล้วหรอเนี่ย
ถ้าใช่ก็ถือเป็นเรื่องดีนะครับ เอาเป็นว่าโจทย์ อ. จะหาเวลาว่างมาลงให้แล้วกันนะครับ ^^
Gaiden
ร่วมแบ่งปัน28 ครั้ง - ดาว 111 ดวง

ความเห็น 32 22 ส.ค. 2553 (14:44)
อ.ค่ะ ถ้าเขียนโปรแกรม C# แบบ if else เขียนยังไงคะ
อ.ที่โรงเรียนสอนไม่ค่อยเข้าใจคะ
gam2514
ร่วมแบ่งปัน3 ครั้ง - ดาว 64 ดวง

ความเห็น 33 24 ส.ค. 2553 (00:43)
ตอบคุณ gam2514

รายละเอียดการทำงาน if-else
อยู่ในหน้าที่ 10 เลยครับ ลองเปิดอ่านดูน้า
มีสงสัยตรงไหนก็ถามไว้ได้ครับ
Gaiden
ร่วมแบ่งปัน28 ครั้ง - ดาว 111 ดวง

ความเห็น 34 24 ส.ค. 2553 (18:31)
สวัสดีครับ ผมพึ่งเข้าเจอเว็บนี้สุดยอดมากๆเลยครับข้อมูลดีๆมากๆ

ยังไงก็ช่วยลงต่อเรื่อยๆด้วยนะครับ

ขอบคุณครับ
lordpudding
ร่วมแบ่งปัน2 ครั้ง - ดาว 50 ดวง

ความเห็น 35 24 ส.ค. 2553 (20:40)
ขอบคุณอ. มากค่ะ ละเอียดมากเลยค่ะ อย่างนี้สอบต้องติดอันดับ 1ใน 5 ได้แน่ๆ *-*
gam2514
ร่วมแบ่งปัน3 ครั้ง - ดาว 64 ดวง

ความเห็น 36 31 ส.ค. 2553 (12:20)
อาจารย์ค่ะ มีการเรียนเพิ่มเรื่องการใ้ ฐานข้อมูลอยากให้อาจารย์ช่วย ให้ความรู้เรื่องญานข้อมูลเพิ่มขึ้นหน่อค่ะ
safpimo
ร่วมแบ่งปัน2 ครั้ง - ดาว 50 ดวง

ความเห็น 37 31 ส.ค. 2553 (21:23)
อยากได้เรื่องยากๆต่อจากนี้จังเลยครับพอดีเดือนหน้าช่วง15มั้งผมต้องไปแข่งทักษะเขียนโปรแกรมแล้ว
คุณครูพอมีเวลาช่วยสอนเรื่องการทำพิรมิดได้ไหมครับพวกทริคต่างๆอ่าครับถ้าไม่ว่างก้ไม่เป็นไรครับ
เป็นกำลังใจให้ครับครูทำเว็บได้มีความรู้มากๆครับช่วยลงต่อไปเลื่อยๆด้วยนะครับ
lordpudding
ร่วมแบ่งปัน2 ครั้ง - ดาว 50 ดวง

ความเห็น 38 24 ก.ย. 2553 (23:42)
โหย ขออภัยจริงๆครับ อ. ไม่ได้เข้ามานาน ด้วยความที่ไม่ว่าง
อ. มีสอนเยอะหน่อยครับ ช่วงนี้ไม่ค่อยมีเวลา
อ. จะพยามเจียดเวลาอย่างที่สุดมาทำตามคำเรียกร้องนะครับ ^^
Gaiden
ร่วมแบ่งปัน28 ครั้ง - ดาว 111 ดวง

ความเห็น 39 30 ก.ย. 2553 (11:43)
ขอบคุณมากๆครับสำหรับบทความดีๆ ขอให้เว็บไซด์นี้อยู่คู่คนไทยไปอีกนานๆเลยนะครับ
Haris-pm
ร่วมแบ่งปัน1 ครั้ง - ดาว 50 ดวง

ความเห็น 40 30 ต.ค. 2553 (08:39)
ถ้าต้องการคอนโทลtextboxให้เป็นตัวอักษร*จะทำยังไงคะ
Bucchytale
ร่วมแบ่งปัน1 ครั้ง - ดาว 50 ดวง

ความเห็น 41 28 ก.พ. 2554 (10:07)
อาจารย์ครับ มีคำถามครับ
1. ไม่เคยเขียนprograme และไม่รู้เรื่องเลย
2. ได้ iPhone มา ทีแรกไม่สนใจเท่าไร พอลอง load app สนใจมาก อยากทำบ้าง
3. สนใจหมวด travel กับ game
4. พอออกแบบได้

ผมอยากทำบ้าง ควรนับ 1 ที่ C# หรือ objective-C ครับ
ผมเข้าใจอย่างนี้ถูกต้องหรือไม่ครับ
การทำแบ่งออกเป็น 3 ส่วน(ถ้ามีทิศทาง และ วัตถุประสงค์ในการทำแล้ว)
1. objective-c, 2. iphone programing, และ 3. หน้าตาของ app

ผมควรเริ่มที่ C# ก่อนหรือไม่ครับ หรือมุ่งตรงที่ objective-c เลย
ผมต้องตั้งใจจริงมากเป็นพิเศษเพราะไม่รู้อะไรเลย
นับถือ
sjk
sjk
ร่วมแบ่งปัน1 ครั้ง - ดาว 50 ดวง

ความเห็น 42 25 มี.ค. 2554 (21:01)
ขอบคุณคร๊าฟฟๆๆ


อ่านแล้วเข้าใจง่ายมากเลย
parkkk123
ร่วมแบ่งปัน1 ครั้ง - ดาว 150 ดวง

ความเห็น 43 19 เม.ย. 2554 (18:41)
ผมมีเรื่องอยากถามเกียวกับ Visual C# หน่อยครับ คือผมพึ่งเรียน Visual C# แล้วอาจารย์ให้เขียน โปรแกรมเครื่องคิดเลข โดยใช้ TextBox 3 ตัว ให้ผลการคำนวนจาก TextBox ที่ 1 กับ 2 แสดงใน TextBox ที่ 3 ต้องทำยังไงหลอครับ ขอความช่วยเหลือหน่อยครับ ขอขอบคุณล่วงนห้าครับ
jamelove
ร่วมแบ่งปัน1 ครั้ง - ดาว 50 ดวง






Gaiden
(โสฬส นิเวศสุนทร)

ผู้ชมข้อมูลนี้แล้ว 8,627 ครั้ง
เป็นสมาชิก: นานกว่า 5 ปี
แบ่งปันความรู้ 28 ครั้ง
ได้รับดาว 111 ดวง

โหวตเพิ่มดาว

Blog อื่น ๆ ของผู้เขียน