Bài giảng Lập trình trên Windows với Microsoft® .NET - Bài 4 - Trần Bá Nhiệm

Kiểu Structs

 Kiểu dữ liệu do người dùng định nghĩa.

 Có thể định nghĩa các phương thức.

 Có thể định nghĩa các Constructors

 Structs là kiểu tham trị .

 Structs không được kế thừa .

pdf 20 trang phuongnguyen 3320
Bạn đang xem tài liệu "Bài giảng Lập trình trên Windows với Microsoft® .NET - Bài 4 - Trần Bá Nhiệm", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình trên Windows với Microsoft® .NET - Bài 4 - Trần Bá Nhiệm

Bài giảng Lập trình trên Windows với Microsoft® .NET - Bài 4 - Trần Bá Nhiệm
Lập trình trên Windows 
 với Microsoft® .NET
 Giảng viên: ThS. Trần Bá Nhiệm
Overloading Methods
  Áp dụng cho các toán tử :
Overloading Methods
 public class Point
 {
 public int m_x;
 public int m_y;
 public Point (){ }
 public Point(int xx,int yy)
 {
 m_x = xx ;
 m_y = yy; 
 }
 public static Point operator + (Point p1,Point p2) {
 Point result = new Point();
 result.m_x = p1.m_x + p2.m_y;
 result.m_y = p1.m_x + p2.m_y;
 return result; 
 }
 }
Overloading Methods
 static void Main(string[] args)
 {
 Point objP1 = new Point(1,1);
 Point objP2 = new Point(2,2);
 Point objResult = new Point();
 objResult = objP1 + objP2;
 Console.WriteLine("The result is m_x = {0} and m_y = {1}", 
 objResult.m_x , objResult.m_y);
 }
Kiểu Structs
  Kiểu dữ liệu do người dùng định nghĩa.
  Có thể định nghĩa các phương thức.
  Có thể định nghĩa các Constructors
  Structs là kiểu tham trị .
  Structs không được kế thừa .
Kiểu Structs
 public struct Point 
 {
 public int x, y;
 public Point(int p1, int p2) 
 {
 x = p1;
 y = p2; 
 }
 public int Add()
 {
 return x+y;
 }
 }
Kiểu Structs
 static void Main(string[] args)
 { 
 Point p1 = new Point() ;
 Point p2 = new Point(10,10);
 Console.Write(" Point 1: ");
 Console.WriteLine("x = {0}, y = {1}", p1.x, p1.y);
 Console.Write(" Point 2: ");
 Console.WriteLine("x = {0}, y = {1}", p2.x, p2.y);
 Console.WriteLine("Call Add method: {0}",p2.Add());
 Console.ReadLine();
 }
Kiểu Enumerator
  Tập hợp các hằng số đã được đặt tên. 
 enum Days
 {
 //mac dinh Phan tu dau tien tu 0
 Sat,
 Sun,
 Mon, 
 Tue,
 Wed,
 Thu,
 Fri
 };
Kiểu Enumrator
 public static void Main() 
 {
 int x = (int) Days.Sun;
 int y = (int) Days.Fri;
 Console.WriteLine("Sun = {0} : Value : {1}", x,Days.Sun);
 Console.WriteLine("Fri = {0} : Value : {1}", y,Days.Fri );
 }
  Kết quả : 
 Sun = 2 : Value : Sun
 Fri = 7 : Value : Fri
Properties
  Sử dụng để truy cập các thành phần Private.
  Kiềm tra dữ liệu cho các thành phần trong lớp .
 public class Square
 {
 public double mSide; 
 }
 public class Test {
 static void Main() {
 Square obj = new Square ();
 obj. mSide = 3;
 }
 }
Properties 
 public class Square
 {
 //Khi báo các thành phần
 private double mSide;
 // Khai báo property
 public double Side
 {
 get { };
 set { };
 }
 // Khai báo các phương thức
 }
Properties 
  Property giống như field, nhưng việc truy cập được 
 thực hiện qua thao tác get và set .
 public int Side 
 {
 get
 {
 return mSide;
 }
 set
 {
 if (mSide < 0) return ; 
 mSide = value;
 }
 } 
Properties 
 namespace SampleProperty
 {
 public class Rectangle 
 {
 private int m_Length ;
 private int m_Width ;
 private int m_Area ;
 public Rectangle()
 {
 m_Length = 3; // Length = 3;
 m_Width = 2; 
 }
Properties 
 public int Length 
 {
 get
 {
 return m_Length; 
 }
 set
 {
 if(m_Length < 0 ) return;
 m_length = value; 
 }
 }
Properties 
 public int Width 
 {
 get
 {
 return m_Width; 
 }
 set
 {
 // Đọan mã kiểm tra giá trị ..
 m_Width = value; 
 }
 } 
Properties 
 public int Area 
 {
 get
 {
 return m_Area; 
 }
 } 
 public void CalArea()
 {
 m_Area = m_Length*m_Width;
 }
Properties 
 public class Test 
 {
 public static void Main() 
 {
 Rectangle objRectangle = new Rectangle();
 objRectangle. Length = 3;
 objRectangle. Width = 4;
 objRectangle.CalArea();
 Console.WriteLine("{0}", objRectangle. Area ); 
 }
 }
Indexer
  Khi thành phần của lớp là các kiểu tập hợp.
  Sử dụng với : new, virtual, sealed, override, abstract, 
 extern.
  Indexer giống như Property, đuợc truy cập thông qua 
 get và set
  Khai báo sử dụng từ khóa this.
  Khi sử dụng Indexer ta sử dụng dấu [] cho get và 
 set .
Indexer
 class IndexerClass 
 {
 private int [] myArray = new int[100]; 
 public int this [int index] 
 { 
 get {
 If (index = 100) return 0;
 else
 return myArray[index];
 }
 set {
 if (!(index = 100))
 myArray[index] = value;
 }
 }
 }
Indexer
 public class Test
 {
 public static void Main() 
 {
 IndexerClass b = new IndexerClass();
 b[3] = 256;
 b[5] = 1024;
 for (int i=0; i<=10; i++) 
 {
 Console.WriteLine("Element # {0} = {1}", i, b[i]);
 }
 }
 }

File đính kèm:

  • pdfbai_giang_lap_trinh_tren_windows_voi_microsoft_net_bai_4_tra.pdf