IT技术学习网
IT技术学习网
您的位置: 主页 > 编程技术 > c# >

c# 初始化器的理解

2014-12-27 17:00 来源: IT技术学习网原创 阅读:

使用初始化器(Initializers)可以减少实例化类的工作量。例如,假设你拥有如代码清单18-2(C#)或代码清单 18-3中的类(VB.NET)。

代码清单 18-2 LanguageChanges\App_Code\Product.cs

public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}

代码清单 18-3 LanguageChanges\App_Code\Product.vb

Public Class Product
Private _Id As Integer
Public Property Id() As Integer
Get
Return _Id
End Get
Set(ByVal value As Integer)
_Id = value
End Set
End Property
Private _Name As String
Public Property Name() As String
Get
Return _Name
End Get
Set(ByVal value As String)
_Name = value
End Set
End Property
Private _Price As Decimal
Public Property Price() As Decimal
Get
Return _Price
End Get
Set(ByVal value As Decimal)
_Price = value
End Set
End Property
End Class

Product类包含3个公共属性(由于C#有自动属性的优势,因此C#示例采用自动属性进行定义,而VB.NET示例采用普通方式进行定义)。

现在,你需要创建一个Product类的实例,在.NET Framework 2.0中,采用以下方式(C#):

Product product1 = new Product();
product1.Id = 1;
product1.Name = “Laptop Computer”;
product1.Price = 800.00m;

VB.NET采用以下方式:

Dim product1 As New Product()
product1.Id = 1
product1.Name = “Laptop Computer”
product1.Price = 800.0

注意,初始化一个简单的Product类使用了4行代码,这太浪费了。利用初始化器,这些工作可以用一行代码完成。用C#使用初始化器的代码如下:

Product product2 = new Product {Id=1, Name=”Laptop Computer”, Price=800.00m};

用VB.NET使用初始化器的代码如下:

Dim product2 As New Product() With {.Id = 1, .Name = “Laptop Computer”,.Price = 800.0}

在.NET Framework 2.0中,你可以声明Product类的构造函数,包含Id、Name和Price作为参数。但由于还需要在构造函数中将参数值赋给属性,因此导致了代码 的膨胀。使用初始化器,你显然可以做类似的工作。并且,你还因此得到了好处:更加小巧的类,以及声明该类时使用的最少的代码。

c# 初始化器的理解
转载需注明出处:IT技术学习网 http://www.itjsxx.com/csharp/The_initializer.html

评论文章 c# 初始化器的理解
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
IT技术学习网 - 关于我们 - 联系我们 - 版权声明 - 网站地图