Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: Get va set

  1. #1
    Ngày gia nhập
    10 2011
    Bài viết
    0

    Mặc định Get va set

    Anh chị nào giúp e với

    Property có 2 hàm set và get. Làm cách nào để set là private, nhưng get lại là public. Cho ví dụ minh họa
    Đã được chỉnh sửa lần cuối bởi kduyen_1510 : 13-03-2012 lúc 09:02 AM.

  2. #2
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Phiên bản C# 3 và 4

    public kieuThuocTinh thuocTinh1 { get; private set; }

    Phiên bản C# 1 và 2:

    private kieuThuocTinh truong1;
    public kieuThuocTinh thuocTinh1 {
    get { return truong1; }
    private set { truong1 = value; }
    }

    chú ý: phải dùng một hàm đối tượng để gọi set

  3. #3
    Ngày gia nhập
    10 2011
    Bài viết
    0

    là sao vậy các bạn mình đọc giải thích mà không hiểu gì cả

  4. #4
    Ngày gia nhập
    05 2011
    Bài viết
    299

    đọc không hiểu thì tự tìm hiểu hoặc chờ đến khi nào hiểu thì đọc.
    Programming tutorials and source code examples

    Trong nhà không vợ không con
    Uống bia gặm thịt sao ngon thế này
    Nhậu nhẹt không bị la rầy
    Một tuần ta cứ bảy ngày " nâng ly "....

  5. #5
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Trích dẫn Nguyên bản được gửi bởi kduyen_1510 Xem bài viết
    Anh chị nào giúp e với

    Property có 2 hàm set và get. Làm cách nào để set là private, nhưng get lại là public. Cho ví dụ minh họa
    Tại bạn hỏi câu này nên tưởng trình độ đã khá lắm rồi. Đâu dè lại gặp dân muốn chạy trước khi tập đi.

  6. #6
    Ngày gia nhập
    10 2011
    Bài viết
    0

    Mặc định Get va set

    Trích dẫn Nguyên bản được gửi bởi VoTichSu Xem bài viết
    Tại bạn hỏi câu này nên tưởng trình độ đã khá lắm rồi. Đâu dè lại gặp dân muốn chạy trước khi tập đi.
    ủa gì kì vậy. Thầy cho bài tập mà em không hiểu, nên hỏi mấy anh chị mà, e có nói gì đâu sao nói móc e rồi

  7. #7
    Ngày gia nhập
    10 2011
    Bài viết
    12

    bi nhiêu đó đủ để trả lời câu hỏi của thầy ùi

  8. #8
    Ngày gia nhập
    04 2010
    Bài viết
    3

    Set và get chủ yếu là để truy xuất gián tiếp thuộc tính private của 1 đối tượng ở 1 class khác. Vì vậy chỉ muốn get là public thôi thì chỉ cần định nghĩa get thôi. Set không cần.

  9. #9
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Trích dẫn Nguyên bản được gửi bởi haitrieu749 Xem bài viết
    Set và get chủ yếu là để truy xuất gián tiếp thuộc tính private của 1 đối tượng ở 1 class khác. Vì vậy chỉ muốn get là public thôi thì chỉ cần định nghĩa get thôi. Set không cần.
    Lý luận này sai. Nhiều người cho rằng set chỉ dùng để thay đổi tính chất private của đối tượng. Đó là cách suy nghĩ đơn giản. Trên thực tế, set dùng để giải quyết các trường hợp thính chất của đối tượng rất phức tạp mà từ khóa gán bằng (=) đơn thuần không đủ sức thực hiện.


    Trích dẫn Nguyên bản được gửi bởi VoTichSu Xem bài viết
    ...
    chú ý: phải dùng một hàm đối tượng để gọi set
    Khi set được đặt từ khóa "private" thì ta không thể trực tiếp gán trị cho thuộc tính, mà phải dùng một hàm đối tượng để gán. Điều này thường xảy ra khi phép gán cần nạp nhiều tham số (set chỉ cho phép nhận một tham số duy nhất: value). Trường hợp đơn giản nhất là hàm đối tượng này truy xét các tham số, làm vài con tính gì đó, cuối cùng ra được một trị và gọi set để gán vảo thuộc tính (set được gọi khi thuộc tính được gán bằng từ khóa =).

  10. #10
    Ngày gia nhập
    12 2008
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    20

    Trích dẫn Nguyên bản được gửi bởi VoTichSu Xem bài viết
    Lý luận này sai. Nhiều người cho rằng set chỉ dùng để thay đổi tính chất private của đối tượng. Đó là cách suy nghĩ đơn giản. Trên thực tế, set dùng để giải quyết các trường hợp thính chất của đối tượng rất phức tạp mà từ khóa gán bằng (=) đơn thuần không đủ sức thực hiện.




    Khi set được đặt từ khóa "private" thì ta không thể trực tiếp gán trị cho thuộc tính, mà phải dùng một hàm đối tượng để gán. Điều này thường xảy ra khi phép gán cần nạp nhiều tham số (set chỉ cho phép nhận một tham số duy nhất: value). Trường hợp đơn giản nhất là hàm đối tượng này truy xét các tham số, làm vài con tính gì đó, cuối cùng ra được một trị và gọi set để gán vảo thuộc tính (set được gọi khi thuộc tính được gán bằng từ khóa =).
    Nếu không dùng SET cũng được. Tuy nhiên, khi bạn gán 1 biến mà biến này lại tác động đến 1 vài biến khác hoặc 1 vài điệu kiện nào khác thì lúc này, SET rất cần.

    Ví dụ: ta có 1 đối tượng nằm chính giữa màn hình.
    Khi bạn thay đổi chiều rộng (Width) của nó, đối tượng sẽ không còn nằm chính xác yêu cầu là chính giữa nữa.
    Lúc này, trong khối lệnh SET bạn có thể sau khi thay đổi chiều rộng, lập tức cập nhật luôn vị trí của đối tượng mà khi dùng phép gán "=" không thể làm cùng lúc được.

    Code:
    private int _width = 100;
    public int Width
    {
    
    get{return _width;}
    private set{
    _width = value; RefreshPosition(); //Phương thức cập nhật ngay sau khi gán _width
    }
    }

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn