乐观 发表于 2015-1-16 22:21:04

ASP.NET网站制作之sealed在C#中的感化申明

我之所以想学。NET,是因为一直觉的BILLGATES好厉害,希望有一天能去微软,虽然现在还距离遥远,呵呵:)sealed关头字的感化:
在类声明中利用sealed可避免别的类承继此类;在办法声明中利用sealed润色符可避免扩大类重写此办法。
  sealed润色符次要用于避免非成心的派生,可是它还能促使某些运转时优化。详细说来,因为密封类永久不会有任何派生类,以是对密封类的实例的假造函数成员的挪用能够转换为非假造挪用来处置。
密封类:
密封类在声明中利用sealed润色符,如许就能够避免该类被别的类承继。假如试图将一个密封类作为别的类的基类,C#将提醒堕落。天经地义,密封类不克不及同时又是笼统类,由于笼统老是但愿被承继的。
  在哪些场所下利用密封类呢?实践上,密封类中不成能有派生类。假如密封类实例中存在虚成员函数,该成员函数能够转化为非虚的,函数润色符virtual不再失效。
  让我们看上面的例子:
复制代码代码以下:
abstractclassAbstractClass
{
publicabstractvoidMethod();
}
sealedclassSealedClass:AbstractClass
{
publicoverridevoidMethod()
{//...}
}


  假如我们实验写上面的代码
classOtherClass:SealedClass
{
}

  C#会指出这个毛病,告知你SealedClass是一个密封类,不克不及试图从SealedClass中派生任何类。
密封办法:
C#还提出了密封办法(sealedmethod)的观点,以避免在办法地点类的派生类中对该办法的重载。对办法可使用sealed润色符,这时候我们称该办法是一个密封办法。
  不是类的每一个成员办法都能够作为密封办法密封办法,要作为密封办法必需对基类的虚办法举行重载,供应详细的完成办法。以是,在办法的声明中,sealed润色符老是和override润色符同时利用。请看上面的例子代码:
复制代码代码以下:
usingSystem;
classA
{
publicvirtualvoidF()
{
Console.WriteLine("A.F");
}
publicvirtualvoidG()
{
Console.WriteLine("A.G");
}
}
classB:A
{
sealedoverridepublicvoidF()
{
Console.WriteLine("B.F");
}
overridepublicvoidG()
{
Console.WriteLine("B.G");}
}
classC:B
{
overridepublicvoidG()
{
Console.WriteLine("C.G");
}
}

类B对基类A中的两个虚办法均举行了重载,个中F办法利用了sealed润色符,成为一个密封办法。G办法不是密封办法,以是在B的派生类C中,能够重载办法G,但不克不及重载办法F你可以先看看这篇文章(软微学院生涯-三朝元老经验谈),打不开再跟我说。(我的意思是想让她自己先稍微了解一下到底现在各个方向学的工具以及以后要做的工具大概是什么,因为喜欢做什么样的事其实自己最清楚的)

冷月葬花魂 发表于 2015-1-19 09:13:21

可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。

因胸联盟 发表于 2015-1-28 06:00:52

平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。

小妖女 发表于 2015-2-5 18:45:59

通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。

莫相离 发表于 2015-2-13 06:27:46

可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。

再见西城 发表于 2015-3-3 17:33:26

ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。

不帅 发表于 2015-3-11 12:35:25

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

变相怪杰 发表于 2015-3-18 17:49:01

目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.

老尸 发表于 2015-3-26 13:45:23

ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。
页: [1]
查看完整版本: ASP.NET网站制作之sealed在C#中的感化申明