Thuộc tính phụ thuộc trong lập trình C#

Trong một class của C# có khả năng các thuộc tính trong nó tương tác lẫn nhau tạo ra các công thức chung nằm trong mỗi class.

Ví dụ: Trong toa thuốc, một loại thuốc có ID, tên thuốc, đơn giá và số lượng bán được. Những thứ này cần được lưu vào trong cơ sở dữ liệu đầu đủ chứ không thể lấy từ bàng (table) khác qua để sử dụng được. Đơn giản vì:
* ID và tên thuốc có thể sử dụng bên bảng Danh mục thuốc (DM_Thuoc)
* Đơn giá và số lượng không thể sử dụng trên bảng danh mục được vì mỗi toa thuốc có đơn giá và số lượng khác nhau.
* Có một cái thuộc tính sẽ phát sinh trong quá trình làm việc đó là Tổng tiên được tính ra. Tổng tiền này thường có giá trị bằng < Đơn giá  x Số lượng > nhưng lại không phải lúc nào cũng thế. Có khả năng nhà thuốc sẽ giảm giá cho người mua với số lượng lớn hay do người quen mà giảm giá như vậy sẽ ảnh hưởng để tốc độ xử lý của phần mềm nên ta cho TongTien vào như một thuộc tính căn bản để có thể lưu trữ lại dễ dàng.

public class ThuocNgoaiTru

   {

       private Double myTongTien = 0;

       private Double mySoLuong = 0;

       private Double myDonGia = 0;

 

       public int STT { get; set; }

       public String TenDuoc { get; set; }

       public Double DonGia

       {

           get

           {

               return myDonGia;

           }

           set

           {

               myDonGia = value;

           }

       }

       public Double SoLuong

       {

           get

           {

               return mySoLuong;

           }

           set

           {

               myTongTien = myDonGia * value;

               mySoLuong = value;

           }

       }

 

       public Double TongTien {

           get

           {

               return myTongTien;

           }

           set

           {

               myTongTien = value;

           }

       }

 

       public override string ToString()

       {

           return TenDuoc + “. Đơn giá: ” + myDonGia + “\r\n Số lượng: ” + mySoLuong + “\r\n Tổng tiền: ” + myTongTien + “\r\n”;

       }

   }


Cuối cùng override hàm ToString để có được kết quả như ý. Lúc này không thể dùng hàm get và set default được mà phải sử dụng một thuộc tính trung gian để lưu trữ lại dữ liệu trong đối tượng là cái thuộc tính riêng (private property).

Tagged: , , , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: