仓酷云

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

[学习教程] 来一篇关于NET的C#中Const与readonly界说的区分

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

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

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

x
来吧!老师们!我代表千千万万的asp.net/C#的初学者在这里呼唤着!之前本人对Const与Readonly二者界说的区分不是很懂得,明天在.net实质论(第一卷,大众言语运转库)中看到了这二者的区分,把内里的原话摘抄下去,但愿能对人人有所匡助。

Const界说
偶然必要一个对字段举行束缚,让它成为常量值,也就是在它的保存期内不克不及被改动。CLR供应了两种将字段声明为常量值的体例。第一种体例所合用的字段,它的常量值是在编译时盘算的——这是效力最高的:字面的静态值仅仅作为一个字面值存储在范例的元数据模块中,在运转时它并非一个真实的字段。正确的说,编译器必要内联任何到字面字段的会见,从实质上讲,它是将字面值嵌进到指令流中。在C#中声明字面字段,必需利用const关头字。这还必要一个初始化表达式,使得它的值可以在编译时盘算出来。上面是这个字段声明的例子:
PublicsealedclassCustomer
{
PublicconstintMax_Customer_AGE=128*365;
}

任何试图修正这个字段的做法都将作为编译时毛病被捕捉。

Readonly界说
字面字段的初始化值在编译时必需是已知的。关于第二种体例,CLR同意程序员将字段声明为稳定的(immutable),它将一个字段声明为initonly,并静态地初始化。假如将initonly特使用到一个字段,那末,一旦机关函数实行终了,就不同意再对字段值修正。在C#中要指定个initonly字段,就必需利用readonly关头字。你能够经由过程利用初始化表达式来指定初始化值,或复杂地在范例的机关函数办法中赋值。不管哪一种情形,被利用的值都能顾及到程序实行形态的静态方面。上面是一个有关initonly字段的树模例子,它是用C#编写的:
PublicsealedclassCustomer
{
Publicreadonlylongcreated=System.DateTime.Now.Ticks;
}

注重,这段代码静态的天生了created字段的初始化值,它是基于以后工夫的。也就是说,在新的实例机关函数实行终了后,假设created的值被设置,就不克不及再改动它。

上面是网友对Const与Readonly区分的注释,总结的十分好:
1.const字段只能在该字段的声明中初始化。readonly字段能够在声明或机关函数中初始化。因而,依据所利用的机关函数,readonly字段大概具有分歧的值。
2.const字段是编译经常数,而readonly字段可用于运转经常数。
3.const默许就是静态的,而readonly假如设置成静态的就必需显现声明。
4.const关于援用范例的常数,大概的值只能是string和null。readonly能够是任何范例我之所以想学。NET,是因为一直觉的BILLGATES好厉害,希望有一天能去微软,虽然现在还距离遥远,呵呵:)
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-18 13:15:04 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
莫相离 该用户已被删除
板凳
发表于 2015-1-25 21:31:38 | 只看该作者
我的意思是.net好用,从功能上来说比JAVA强还是很明显的。
兰色精灵 该用户已被删除
地板
发表于 2015-2-4 07:04:57 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
飘灵儿 该用户已被删除
5#
发表于 2015-2-9 18:29:54 | 只看该作者
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
柔情似水 该用户已被删除
6#
发表于 2015-2-27 16:03:31 | 只看该作者
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
蒙在股里 该用户已被删除
7#
发表于 2015-3-9 10:24:38 | 只看该作者
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
乐观 该用户已被删除
8#
发表于 2015-3-16 22:17:31 | 只看该作者
当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。
活着的死人 该用户已被删除
9#
发表于 2015-3-23 07:12:48 | 只看该作者
目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-6-13 23:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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