仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 781|回复: 10
打印 上一主题 下一主题

[学习教程] NET网页编程之C#将数据转换为指定范例,撑持对可空范例(Nullable类)转换办法示例 ...

[复制链接]
乐观 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:21:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
是不是实质都是API?有的好像不只是API那么简单的,有的也是一种框架就像MFC一样。有的还是一种思想(就是做软件的思想)(好像很深奥,其实我也不懂^_^)我们晓得在C#中,援用范例能够为null,而值范例不成觉得null,就是值范例必需要有值。msdn下面的注释是值范例没有充足的空量来暗示空值,它的容量只够暗示合适该范例的值,没有过剩的容量。而数据库中(好比sqlserver)中,任何范例的值都是能够为null的,这就给我们在往数据库中拔出值带来贫苦了,好比要往数据库中的int字段中拔出一个null值,而C#在2.0之前,是不成能给一个int范例的变量赋于null的。

为懂得决这个成绩,C#引进了Nullable类,该类为值范例赋于null值供应了撑持,假如我们要为一个int范例赋于null值,那末我们就能够声明该范例为Nullable<int>,也能够间接缩写为int?,这就是我们在C#2.0后版本中看到的大批可为空的值范例声明体例。

基本基元范例的观点:
可空范例的原范例称之为该范例的基本基元范例,好比我们声了然变量int?,那末我们就称int为int?的基本基元范例。

分明了这些观点后,如今假定我们要写一个办法,该办法要撑持将一个object范例的值转换为任何大概转换的范例。
该类有两个参数,值value,范例convertsionType,
假如不撑持可空范例,那末该办法很好完成,以下:
publicstaticobjectChanageType(objectvalue,TypeconvertsionType)
{
returnConvert.ChangeType(value,convertsionType);
}


但假如convertsionType为可空范例,该办法就会报相似以下毛病了:
从“System.String”到“System.Nullable`1[[System.Int32,mscorlib,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089]]”的强迫转换有效。

以是改写办法以下:
publicstaticclassPageBaseHelper
{
publicstaticobjectSD_ChanageType(thisobjectvalue,TypeconvertsionType)
{
//判别convertsionType范例是不是为泛型,由于nullable是泛型类,
if(convertsionType.IsGenericType&&
//判别convertsionType是不是为nullable泛型类
convertsionType.GetGenericTypeDefinition().Equals(typeof(Nullable)))
{
if(value==null||value.ToString().Length==0)
{
returnnull;
}

//假如convertsionType为nullable类,声明一个NullableConverter类,该类供应从Nullable类到基本基元范例的转换
NullableConverternullableConverter=newNullableConverter(convertsionType);
//将convertsionType转换为nullable对的基本基元范例
convertsionType=nullableConverter.UnderlyingType;
}
returnConvert.ChangeType(value,convertsionType);
}
}

OK,如今该办法能够合用于值对任何范例的转换了,尝尝吧!
其实Java之所以在曾经独步天下,就是因为他的跨平台、安全性,这两方面,效率可不是Java的强项,反而是他最短的一块挡板,虽然net总是用理论证明比.NET快。
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-18 13:31:42 来自手机 | 只看该作者
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
柔情似水 该用户已被删除
板凳
发表于 2015-1-25 22:21:27 | 只看该作者
由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
若相依 该用户已被删除
地板
发表于 2015-2-4 10:18:51 | 只看该作者
asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源
爱飞 该用户已被删除
5#
发表于 2015-2-9 22:05:06 | 只看该作者
大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。
海妖 该用户已被删除
6#
发表于 2015-2-27 23:46:11 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
深爱那片海 该用户已被删除
7#
发表于 2015-3-9 16:44:39 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
莫相离 该用户已被删除
8#
发表于 2015-3-17 01:08:02 | 只看该作者
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
不帅 该用户已被删除
9#
发表于 2015-3-17 01:08:02 | 只看该作者
如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。
小魔女 该用户已被删除
10#
发表于 2015-3-17 01:07:59 | 只看该作者
现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。
小妖女 该用户已被删除
11#
发表于 2015-3-23 11:50:29 | 只看该作者
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 16:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表