Hướng dẫn tạo Object Initializers in c#
Khai báo 1 lớp mà chúng ta không cần khởi tạo constructor mà vẫn khỏi tạo được các đối tượng từ 1 lớp. Các lớp này chỉ khai báo các properti thôi. không cần khởi tạo các thuộc tính.
Object Initializers cho bạn gán giá trị bất kỳ trong trường hoặc trong hoặc thuộc tính property nào có có thể truy cập được các đối tượng tại thời điểm khởi tạo. Mà ta không cần phải tạo đối tượng rồi mới gán giá trị.
Tạo ra 1 properti không cần tao constructor.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ObjecIntiazer
{
public class SanPham
{
public int Ma { get; set; }
public string Ten { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ObjecIntiazer
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnLuu_Click(object sender, EventArgs e)
{
/*
// cách viết c# cũ là:
SanPham sp = new SanPham();
sp.Ma = int.Parse(txtMa.Text);
sp.Ten = txtTen.Text;
lstSanPham.Items.Clear();
lstSanPham.Items.Add(sp.Ma +"-" + sp. Ten);
*/
// cách viết linq, vừa khỏi tạo vừa gán giá trị mặt định cho nó luôn.
//SanPham sp = new SanPham()
//{
// Ma = int.Parse(txtMa.Text),
// Ten = txtTen.Text
//};
//lstSanPham.Items.Clear();
//lstSanPham.Items.Add(sp.Ma + "-" + sp.Ten);
// cách 3;
var sp = new SanPham()// c# nội suy ra sp chính là sản phẩm. vả ko tường minh sp ko biết kiểu j
{
Ma = int.Parse(txtMa.Text),
Ten = txtTen.Text
};
}
}
}
Không có nhận xét nào