07 methods
Upcoming SlideShare
Loading in...5
×
 

07 methods

on

  • 144 views

 

Statistics

Views

Total Views
144
Views on SlideShare
144
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

07 methods 07 methods Presentation Transcript

  • เมท็อ ด (M ethod) C# Programming
  • เนื้อ หา    ภาพรวมของเมท็อด การเรียกเมท็อด การประกาศเมท็อด
  • โครงสร้า งโปรแกรมภาษา C#  โปรแกรมภาษา C# ประกอบด้วยหลาย   เนมสเปซ (namespace) เนมสเปซหนึ่งประกอบด้วยหลายคลาส คลาสหนึ่งประกอบด้วยหลายเมท็อด method1 method2 Class 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
  • ประโยชน์ข องการใช้เ มท็ อด      ช่วยมองงานทีซับซ้อนเป็นงานย่อย ๆ ่ ทีเล็กลง ่ ช่วยลดการเขียนโค้ดทีซำ้าซ้อน ่ ช่วยซ่อนรายละเอียดของโปรแกรมไว้ ทีส่วนอืน ่ ่ ทำาให้โปรแกรมดูมระเบียบและง่ายต่อ ี การเข้าใจ เพิมความสะดวกในการนำาโค้ดที่เขียน ่ ไว้แล้วไปใช้ในโปรแกรมอื่น ๆ
  • ภาพรวมของเมท็อ ด  โปรแกรมหนึงสามารถประกอบด้วย ่ เมท็อดมากกว่{าหนึง ่ namespace HelloW { namespace HelloW class HelloWClass { class HelloWClass { static void Main () { static void Main () { : : } } static void Method1() { static void Method1() { : : } } } } } } static int Method2(int x, double y) { static int Method2(int x, double y) { : : } }
  • ประเภทของเมท็อ ด ประเภทของเมท็อ ด เมท็อดที่มีอยู่แล้ว ส่ง คืน ค่า ไม่ค น ค่า ื เมท็อดที่สร้างขึ้นมาเอง ส่ง คืน ค่า ไม่ค น ค่า ื
  • ฟัง ก์ช ัน และโปรแกรมย่อ ย   ฟังก์ชน (Function) – เมท็อดทีมีการ ั ่ ส่งคืนค่า โปรแกรมย่อย (Subroutine หรือ Procedure) – เมท็อดทีไม่มีการส่งคืน ่ ค่า
  • การเรีย กเมท็อ ด  การเรียกเมท็อดซึ่งไม่มการส่งคืนค่า ี Console.WriteLine("Hello, World!"); Console.WriteLine("Hello, World!"); Console.Write("Enter N:"); Console.Write("Enter N:");  การเรียกเมท็อดซึ่งมีการส่งคืนค่า string string double double double double s s d d p p = = = = = = Console.ReadLine(); Console.ReadLine(); double.Parse(Console.ReadLine()); double.Parse(Console.ReadLine()); Math.Pow(3, 5); Math.Pow(3, 5);
  • การประกาศเมท็อ ด  ไวยากรณ์ static <return-type> <method-name>(<parameter list>) static <return-type> <method-name>(<parameter list>) { { <statement-1>; <statement-1>; <statement-2>; <statement-2>; : : } }  <return-type>     สามารถเป็น ประเภทข้อมูล C# : int, double, string, ... ต้อ งมีค ประเภทข้อมูลซึ่งกำาหนดโดยผู้ใช้: struct/classำา สั่ง return name, ... ไม่มการส่งคืนค่า: void ี <parameter-list>  ประกอบด้วย <parameter-type> และ <parameter-name> เช่น int x, string s  หรือ อาจจะเว้นว่างไว้ หากไม่มี
  • ตัว อย่า งการประกาศเมท็ อด อด Show10Stars แสดงอักขระ '* ' 10 ตัวบน  เมท็ หน้าจอvoid Show10Stars() {{ static void Show10Stars() static } }   เมท็อด void ShowStars(int n) กขระ '* ' ตาม Show10Stars แสดงอั static void ShowStars(int n) { static { จำ} นวนที่ได้กำาหนด }า static double ComputeArea(double w, double h) { static double ComputeArea(double w, double h) { } ComputeArea } เมท็อด สามเหลี่ยม คำานวนขนาดพื้นที่ของรูป
  • คำา สั่ง return   ต้องใช้สำาหรับเมท็อดที่ต้องการส่งค่าคือ ไวยากรณ์: return <expression>; return <expression>;  <expression> ต้องสอดคล้องกับประเภท ข้อมูลที่ส่งคืนซึ่งได้ประกาศไว้ เช่น static double Average(double x, double y) { static double Average(double x, double y) { } } return (x+y)/2.0; return (x+y)/2.0; ค่า ทีส ่ง ่ คืน …ต้อ ง สอดคล้อ งกับ return type ที่ กำา หนด
  • พารามิเ ตอร์ข องเมท็อ ด   เมท็อดสามารถประกาศให้รับได้ทั้งหนึ่ง หรือ หลายพารามิเตอร์ เมื่อเรียกเมท็อด จำานวนนิพจน์ต้องเท่ากับจำานวนพารามิเตอร์ที่ กำาหนด class MethodEx {{ class MethodEx  static void Main() { องสอดคล้องกัน ประเภทข้อมูล { static void Main() ต้  }} int xx == Method1(); int Method1(); Method2(x, "Hello", 3.5); Method2(x, "Hello", 3.5); static int Method1() {{ static int Method1() :: }} }} static void Method2(int a, string x, double b) {{ static void Method2(int a, string x, double b) :: }}
  • แบบฝึก หัด          พิจารณาโค้ด หากทำาการเรียกเมท็อด ใน Main() การเรียกเมท็อด ใดถูกต้อง? 1. 2. 3. 4. 5. 6. 7. class Quiz { class Quiz { static void Main() { static void Main() { int x, y; string s, t; int x, y; string s, t; : : : : } } static int Hello() static int Hello() { { : : } } x = Hello(); Hello("everyone"); Hello(); Hi(s, y); y = Hi(3, t); Hi(x, "there"); Hi(x, x); static void Hi(int a, string b) static void Hi(int a, string b) { { : : } } } } static void Hi(int a, int b) static void Hi(int a, int b) { { : : } }
  • ตัว อย่า งเมท็อ ด #1  เขียนเมท็อด RectArea   รับพารามิเตอร์: int w, int h คำานวนและส่งคืนค่าพื้นที่ของสีเหลี่ยม ่ ผืนผ้าที่มีความกว้างเท่ากับ w และความ สูงเท่ากับ h static int RectArea(int w, int h) { static int RectArea(int w, int h) { int area; int area; area = w * h; area = w * h; return area; return area; } }
  • ตัว อย่า งเมท็อ ด #2  เขียนเมท็อด PrintRect รับพารามิเตอร์: int w, int h  พิมพ์รูปสีเหลี่ยมผืนผ้าขนาดความกว้าง ่ w และความสูง h ด้วยอักขระ '* ' บนหน้า จอ void PrintRect(int w, int h) { static  static void PrintRect(int w, int h) { int i, j; int i, j; for (i = 0; i < h; i++) { for (i = 0; i < h; i++) { for (j = 0; j < w; j++) { for (j = 0; j < w; j++) { Console.Write('*'); Console.Write('*'); } } Console.WriteLine(); Console.WriteLine(); } } } }
  • ลับ สมอง  เขียนเมท็อด DrawLine    รับพารามิเตอร์หนึงตัว: int len ่ ไม่มการส่งคืนค่าใด ๆ ี วาดเส้นตรงด้วย len '* ' using System; using System; class Quiz {{ class Quiz static void Main() {{ static void Main() DrawLine(10); DrawLine(10); }} ใส่เ มท็อ ด DrawLine ตรงนี้... }}  โปรแกรมข้างต้นต้องแสดงผลลัพธ์เป็น ********** **********