当前位置:首页 >> 两性养生

自定义实体类简介

2021-09-06 01:50 来源:璧山县养生网

她告诉 .NET Framework 2.0 的功能

即将面世的 .NET Framework 2.0 版将改变我们在本指南中讨论的一些实施细节。这些改变将减少支持自定义实体所需的代码数量,并有助于处理映射问题。

泛型

议论颇多的泛型之所以存在,主要原因之一就是为了向开发人员提供现成的强类型的集合。我们避开 Arraylist 等现有集合是因为它们属于弱类型。泛型提供了与当前集合同样的方便性,而且它们属于强类型。这是通过在声明时指定类型来实现的。例如,我们可以替换 UserCollection 而不需要增加代码,然后只需创建一个 List 泛型的新实例并指定我们的 User 类即可:

\'Visual Basic .NET

Dim users as new IList(of User)

//C#

IList users = new IList();

声明后,我们的 user 集合就只能处理 User 类型的对象了,这为我们提供了编译时检查和优化的所有优点。

参考资料:

Introducing .NET Generics

An Introduction to C# Generics

可以为空的类型

可以为空的类型实际上就是由于其他原因而非上述原因而使用的泛型。处理数据库时面临的挑战之一就是正确一致地处理支持 NULL 的列。在处理字符串和其他类(称为引用类型)时,您只需为代码中的某个变量指定 nothing/null:

\'Visual Basic .NET

if dr(\"UserName\") Is lue Then

erName = nothing

End If

//C#

if (dr[\"UserName\"] == lue){

erName = null;

}

也可以什么都不做(默认情况下,引用类型为 nothing/null)。这对值类型(例如整数、布尔值、小数等)并不完全一样。您当然也可以为这些值指定 nothing/null,但这样将会指定一个默认值。如果您只声明整数,或者为其指定 nothing/null,变量的值实际上将为 0。这使其很难映射回数据库:值究竟为 0 还是 null?可以为空的类型允许值类型具有具体的值或者为空,从而解决了这个问题。例如,如果我们要在 userId 列中支持 null 值(并不是很符合实际情况),我们会首先将 userId 字段和对应的属性声明为可以为空的类型:

\'Visual Basic .NET

Private _userId As Nullable(Of Integer)

Public Property UserId() As Nullable(Of Integer)

Get

Return _userId

End Get

Set(ByVal value As Nullable(Of Integer))

_userId = value

End Set

End Property

//C#

private Nullable userId;

public Nullable UserId {

get { return userId; }

set { userId = value; }

}

然后利用 HasValue 属性判断是否指定了 nothing/null:

\'Visual Basic .NET

If sValue Then

Return lue

Else

Return lue

End If

//C#

if (sValue) {

return lue;

} else {

return lue;

}

参考资料:

Nullable types in C#

Nullable types in

迭代程序

我们前面讨论的 UserCollection 示例只展示了自定义集合中可能需要的基本功能。有一个操作无法通过所提供的实现来完成,即通过一个 foreach 循环在集合中循环。要完成此操作,您的自定义集合必须具有实现 IEnumerable 接口的枚举数支持类。这是一个非常直观且重复性较强的过程,但却引入了更多的代码。C# 2.0 引入了新的 yield 关键字来为您处理此接口的实现细节。Visual Basic .NET 中当前没有与新的 yield 关键字等效的关键字。

参考资料:

What\'s new In C# 2.0 - Iterators

C# Iterators

小结

请勿轻率地做出向自定义实体与集合转换的决定。这里有许多需要考虑的因素。例如,您对 OO 概念的熟悉程度、可用来熟悉新方法的时间以及您打算部署它的环境。虽然总体上它们有很大的优点,但并不一定适合您的特定情况。即使适合您的情况,它们的缺点也可能会打消您使用它们的念头。还要记住有许多可替代的解决方案。Jimmy Nilsson 在他的 Choosing Data Containers for .NET 中概述了其中的某些替代方案,此专栏系列包括 5 部分(1、2、3、4、5)。

自定义实体使您获得了面向对象的编程的丰富功能,并帮助您构建了可靠、可维护的 N 层体系结构的框架。本指南的目的之一是让您从构成系统的业务实体,而不是一般的 DataSet 和 DataTable 的角度来考虑您的系统。我们还讨论了一些关键的问题,不管您选择的途径(即设计模式)、对象世界与关系世界的差异(了解详细信息)以及 N 层体系结构是什么,您都应注意这些问题。请记住,您之前花费的时间会在系统的整个生命周期内为您带来更多的回报。

查看本文来源

唐山输卵管堵塞治疗多少钱
沈阳哪医院治疗男科好
可以快速缓解肩颈痛的健身操
相关阅读
葡萄牙生活家的美德,发掘咖啡鲜为人知的绝妙用处! | 微课堂

在在是一年一度的招生季,想必勾起了不少果树的真情自述。不告诉他有多少小伙伴和小编一样,从大一起指望一杯冰淇淋必须提神醒脑,现今纯净已经生活习惯了靠冰淇淋“续命”的日常生活而在果树牙人的日常...

亚马逊Fire 7平板的电脑将搭载Fire OS操作系统,升级Android 11

IT之家 5 月 22 日消息,雨林新款机壳电脑 Fire 7 将搭载该公司的 Fire OS UNIX的新版本 ——Fire OS 8,其将基于 Android 11,之前的 Fire OS 7 是基于 Android 9,于 2018 年发布。 根据雨林的开发者文档,该预览可能助长一些更...

肺突起是如何产生的呢?良性的概率远大于恶性!

作者:江苏亦然元堂 什么是呼吸系统下颚?呼吸系统下颚是幽像学的描述,指的是在胸片或者CT中都会发现的呼吸系统内的小于75px的阴幽,可以是单个也可以是多个。那么,呼吸系统下颚是如何显现出的呢? 受过外...

长春视觉艺术生文化课英语学习方法,高三学校分享

虽是如此,但那些在今后直译总成绩不是不错的夫妻俩也可不太过责怪。 如果你贝尔努力,贝尔细心,就算不能变成直译130+的龙神,但也可以受益一个极少的名次。 就让过来人丢下过的路,汲取充分,自制努力吧...

爱人是从互相爱慕到相互彼此产生了解

所选男人,还是所选个疼你的好。真情,缘故就是个倒是静的词儿。它不只是简单的形而上,更是一些实实在在的呵护。真情一个人,得给对方一些犹如、摸得着的确信。一万句柔情蜜意,不如一句“放着,我来。...

仅先于4日,第四批同业存单基金获批,这类产品为何突然爆火?

仅隔4日,第四批票券商存单外资基金获批了!5年初20日,嘉实外资基金、汇添富外资基金、华宝外资基金、华泰柏瑞外资基金、景顺长城外资基金为该公司票券商存单标准普尔外资基金正式获批。 而在5年初16日,...

友情链接