01/10/2018, 01:00
Properties trong c#
mình có một đoạn code như này trong c#
private String id;
private String name;
private float mark ;
làm sao để tạo được Properties của các id name và mark mình có thử mọt vài giải pháp trong visual stdio nhưng ko hài lòng có cách nào để insert code vào như bên java ko nhỉ xin cảm ơn
Bài liên quan
ý em là kiểu như java ý anh tạo các biến rồi tạo geter seter cho nó anh à
Không biết ý bạn là gì nhỉ.
Bạn có thể viết một phương thức có tầm vực là
public
thay thế choproperty
. Theo mình property trong C# chỉ để code tiện hơn thôi, thực tế nó cũng là một phương thức để bên ngoài thao tác với biến thông qua nó (an toàn hơn).Hoặc nếu bạn muốn đặt thêm điều kiện khi gán giá trị cho biến thì có thể viết như thế này:
ý mình là như này vd đây là một đoạn code java nè
trong c# mình cũng muốn làm một cái tương tự như này nhưng có cách nào insert code được vào ko bạn
thì viết y chang thôi mà bạn, đổi String thành string là được rồi
Mình là mình rất ít khi dùng this. vì mình thấy cái đó làm xấu code ra Nên mình có thói quen đặt biến cục bộ với biến toàn bộ nó khác nhau cho dễ nhìn
Tự viết đê còn gì nữa ? C# nó đã tiến hoá hẳn hơn 1 bước thế còn không muốn lại muốn khổ dâ… à
bước tự viết code hả anh
đùa thế ko có cách nào insert hả bác hay cứ thế mà viết thôi à
Đúng vậy rồi còn gì nữa. Sau này cậu sẽ thấy việc tách thành 2 method là việc rất là vớ vẩn trong C#. Vì nó sẽ bị mất đi rất nhiều chức năng so với một properties bình thường trong C#. Tóm lại là làm thế không được cái lợi lộc gì cả, chỉ mệt xác thôi
đại ca cho cái vd cái nào
đây là bên netbean nó tự insert vào mà bác
Ví dụ 1:
Khi kéo thả một cái Label vào Form. Nhìn bảng properties có rất nhiều property. Chỉnh thông số phát thì label trên Form thay đổi liền. Sau này cậu thiết kế một cái để kéo vào Form mà dùng 2 hàm thì còn lâu mới có cái đó.
Ví dụ 2:
Nếu dùng công nghệ WPF ( thế hệ sau của Winform ) thì có một khái niệm là databinding. Người ta sẽ liên kết dữ liệu giữa tầng này với tầng kia. Viết 2 method xong tự đi mà viết các hàm update, chắc cũng phê
property chỉ là một khái niệm thôi, và C# đã cụ thể hóa khái niệm property qua cú pháp khai báo của nó. Phần về netbean thì nó là một IDE nên việc nó tự gen property cho bạn cũng là chuyện dễ hiểu.
Properties are an extension of fields and are accessed using the same syntax. They use accessors through which the values of the private fields can be read, written or manipulated. đây là định nghĩa của cái này trên trang này https://www.tutorialspoint.com/csharp/csharp_properties.htm tức là nó sẽ dùng để truy cập vào các biến private or lấy dữ liệu từ đó ra đúng ko bạn
Nói chung là khi nào mình tìm mỏi mắt trong bảng property không thấy property hoặc event đó thì mới viết thôi. Mà nếu class do bạn tự tạo ra thì sẽ không có property phải viết code, còn delegate từ class có sẵn thì cũng chỉ có property có sẵn thôi. Property nó là tự sinh code trong designer mà
Có thể cho là như vậy.
Trong trang web bạn đưa có nói về khái niệm của property trong C#. Theo mình biết thì C# làm đơn giản hóa vấn đề thao tác với các biến được ẩn giấu trong lớp. Trước đó thì người ta sẽ phải viết các phương thức setter, getter.
Với các phiên bản C# từ 3.0 (nếu mình nhớ không nhầm) thì việc khai báo properties còn đơn giản hơn nhiều
Hoặc đơn giản hơn nữa
Lúc này thì khỏi cần khai báo luôn cả biến :))))
Học và hiểu sâu C# sẽ biết khi dùng properties dạng {get;set;} thì compiler sẽ tự sinh biến cục bộ, không cần viết kiểu giả cầy Java này làm gì.
https://msdn.microsoft.com/en-us/library/bb384054.aspx
Chỉ nên dùng biển cục bộ trong một số trường hợp cần validation hay xử lý v…v thôi.
bạn làm việc với c# thì đừng nên lôi mấy cái giả cầy của java sang, sẽ thấy khó chịu vì bên c# cú pháp bị cắt gọt đi cho tiện hơn rồi. Thế nên nó mới là 2 ngôn ngữ, giống lắm chỗ nhưng cũng khác lắm chỗ
Sao anh em lại cứ gọi kiểu của Java là giả cầy thế nhỉ. Có bức xúc gì không nhưng mà tại nghe nói vậy lại lên cơn thèm :))))