30/09/2018, 18:25

Về việc escapsulation trong visual studio khi code c#?

mình thấy visual hỗ trợ 2 kiểu escapsulation nhưng mình thường code cách 1, còn cách 2 mình ko thấy định nghĩa cái field private , vậy 2 cách khác nhau thế nào và cái nào là khuyên dùng, mọi người góp ý nhé

private double _width;
public double Width
{
     get { return _width; }
     set { _width = value; }
}
///hoặc là
public double Width { get; set; }
Mai Anh Dũng viết 20:35 ngày 30/09/2018

Cách nào là cách 1, cách nào là cách 2?

Bùi Trung Thông viết 20:30 ngày 30/09/2018

cách 1:

private double _width;
public double Width
{
     get { return _width; }
     set { _width = value; }
}

cách 2 gọn hơn:

public double Width { get; set; }

Mai Anh Dũng viết 20:30 ngày 30/09/2018

Cách 2 là cách viết ngắn gọn cho cách 1 thôi

stackoverflow.com
kn3l

What is the { get; set; } syntax in C#?

c#, properties
asked by kn3l on 08:49PM - 23 Feb 11
stackoverflow.com
Slabo

What does this mean ? public Name {get; set;}

c#, properties
asked by Slabo on 05:33AM - 21 Aug 09
Bùi Trung Thông viết 20:26 ngày 30/09/2018

vậy nó tự mặc định định nghĩa private double _width; trong cách 2 luôn hả anh, em tưởng nó bỏ cái biến private đó

Mai Anh Dũng viết 20:27 ngày 30/09/2018

Yes, it is. Nhưng mà tên biến không có nghĩa là _width, nó không có tên

https://msdn.microsoft.com/en-us/library/bb384054.aspx

In C# 3.0 and later, auto-implemented properties make property-declaration more concise when no additional logic is required in the property accessors. They also enable client code to create objects. When you declare a property as shown in the following example, the compiler creates a private, anonymous backing field that can only be accessed through the property’s get and set accessors.

Ở đây ghi rõ là anonymous, tức là không có tên, mà tất cả giao tiếp qua get/set. Nếu muốn mở rộng/kiểm tra giá trị nhập/xuất thì mình dùng cách 1

Bùi Trung Thông viết 20:41 ngày 30/09/2018

cảm ơn anh nhiều

Mai Anh Dũng viết 20:40 ngày 30/09/2018

Mark accept solution đi

Bùi Trung Thông viết 20:38 ngày 30/09/2018

tức là gì anh, thông cảm cho em ko hiểu

Bài liên quan
0