ASP.NET网页设计C++ CLI 程序编写注重事项仓酷云
兄弟们,想来你们都看过了昨天的比赛了。我现在的痛苦状跟当时应该差不多。希望本版.net老师不吝赐教,为小弟这一批迷途的羊羔指一条阳光之道!您也知道:学习技术如果只有一个人摸索,那是一件多么痛苦的事情!还有,如果万辛能得名师或长者指点,那又是多么一件幸福和快乐的事情!比来做了一个C++CLI的项目,感到仍是有良多注重事项的。如今写上去与人人分享,但愿能对人人有所匡助。本文不会会商更多实际上的工具,只会从有用角度动身,把相干语法内容过一遍。1)属性
C++CLI声明属性,必要利用property关头字。在属性内,必要经由过程get函数、set函数来设定公有的field值。
万万别忘了,在属性声明停止后要加分号。
利用C#声明属性:
<br>
<br>Code
privateint_age;
publicAge
{
get{return_age;}
set
{
if(0>value||value>=150)
thrownewException();
_age=value;
}
}
利用C++CLI声明属性:
Code
private:
int_age;
public:
propertyintAge
{
intget(void){return_age;};
voidset(intvalue)
{
if(0>value||value>=150)
throwgcnewException();
_age=value;
};
};
2)办法
当利用override关头字重载虚办法,大概利用new关头字掩盖基类办法时,关头字要写在办法称号和参数列表前面。
利用C#声明:
Code
<br>publicclassA
<br>{
<br>
<br>publicintAdd(inta,intb)
<br>{returna+b;}
<br>}
<br>
<br>publicclassB:publicA
<br>{
publicnewintAdd(inta,intb)
<br>{returna+b;}
<br>}
<br>
<br>protectedoverridevoidOnPaint(PaintEventArgspevent)利用C++CLI声明:
Code
<br>publicrefclassA
<br>{
publicintAdd(inta,intb)
<br>{returna+b;}
<br>}
<br>
<br>publicrefclassB:publicA
<br>{
<br>public:
intAdd(inta,intb)new
<br>{returna+b;)
<br>}
<br>
<br>protectedvoidOnPaint(PaintEventArgspevent)override3)事务:
这是C++CLI中对照烦人的部分,代码声明相似于属性声明。事务中的两个默许函数是add和remove。
利用C++CLI声明事务:
Code
<br>private:
<br>EventHandler^_AxDownloadComplete;
<br>public:
<br>virtualeventEventHandler^AxDownloadComplete
<br>{
<br>virtualvoidadd(EventHandler^value)
<br>{
<br>_AxDownloadComplete+=value;
<br>};
<br>virtualvoidremove(EventHandler^value)
<br>{
<br>_AxDownloadComplete-=value;
<br>};
<br>};
4)参数
在C#必要传送援用,利用ref关头字。在C++CLI中与之对应的是%,在C++CLI中没有out关头字。
利用C#声明:
Code
<br>publicvoidGetObject(refObjecto);
<br>利用C++CLI声明:
Code
<br>public:
<br>GetObject(Object^%o);
5)创立对象
在C++CLI中能够经由过程new关头字创立非托管对象。利用gcnew创立托管对象。编译器在编译时会主动反省对象的范例。
6)完成接口
在C#中,一个类无需显式的承继接口。好比:
Code
<br>publicinterfaceITest
<br>{
BackColor
<br>{get;set;}
<br>}
<br>
<br>publicclassMyControl:Control,ITest
<br>{
<br>//无需显式的声明BackColor属性,觉得基类Control,已含有BackColor的完成了。
<br>}
假如在C++CLI中依照下面的相似写法,将会失掉一个C3766编译毛病。编译器提醒代码中未能完成ITest接口。以下的两种写法
都将会招致C3766毛病:
Code
publicinterfaceclassITest
{
intAdd(inta,intb);
};
publicrefclassImpl:ITest
{
};//errorC3766
publicinterfaceclassITest
{
intAdd(inta,intb);
};
publicrefclassImpl:ITest
{
public:
intAdd(inta,intb){returna+b;}
};//errorC3766
人人大概会对第二种写法也会到致编译器呈报C3766毛病而感应惊奇。其次要缘故原由是,C++完成多态次要是经由过程
虚表来完成的。将必要完成多态的函数指针在运转时放进虚表中,在挪用时,体系查询虚表,找到对应的指向虚函数的指针,
最初挪用实行。
准确的写法应当是:
Code
<br>publicinterfaceclassITest
<br>{
<br>intAdd(inta,intb);
<br>};
<br>
<br>publicrefclassImpl:ITest
<br>{
<br>public:
virtualintAdd(inta,intb)
<br>{returna+b;}
<br>};
将完成办法用virtual关头字润色,以便编译器可以准确辨认该办法为虚办法,将其指向函数的指针放进虚表内。
这就带来一个成绩,假如你声了然一个依据System::Windows::Forms::Control类成员的一个接口IControl,然后声明一个类MyControl,该类承继了System::Windows::Forms::Control类和IControl接口。那末,C++编译器将不会以为MyControl类已完成了IControl接口,而招致大批的编译毛病。缘故原由就是System::Windows::Forms::Control类的年夜部分办法都不是虚办法,C++编译器没法间接把基类的办法放进虚表中完成多态。因而只能本人再将Control类在封装一遍。
来自:http://www.ckuyun.com/michaellee/archive/2008/08/03/1259080.html
捆绑编译器。用户不需要受制于厂家,自己就能将程序在新平台上编译运行。除了牛B轰轰的linux,估计也没有系统捆绑c/c++的编译器,而且许多新平台都无法支持复杂的c/c++编译器在上面直接运行。 是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。 是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。 asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源 大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。 业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。 ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。 对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。 当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。 主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。
页:
[1]