|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有个问题想请教你一下,呵呵:)你觉得将来学什么方向比较好,我真是想不出来,知道的太少了,麻烦了。明天看到一个伴侣问到C#的New关头字有几种用法,现将从网上摘抄汇总材料到本站,以供人人查阅:
(1)new运算符:用于创立工具和挪用机关函数。
(2)new润色符:用于埋没基类成员的承继成员。
(3)new束缚:用于在泛型声明中束缚大概用作范例参数的参数的范例。
new运算符
1.用于创立工具和挪用机关函数
例:Class_TestMyClass=newClass_Test();
2.也用于为值范例挪用默许的机关函数
例:intmyInt=newint();
myInt初始化为0,它是int范例的默许值。该语句的效果同等于:intmyInt=0;
3.不克不及重载new运算符。
4.假如new运算符分派内存失利,则它将激发OutOfMemoryException非常。
new润色符
利用new润色符显式埋没从基类承继的成员。若要埋没承继的成员,请利用不异称号在派生类中声明该成员,并用new润色符润色它。
请看上面的类:
publicclassMyClass
{
publicintx;
publicvoidInvoke(){}
}
在派生类顶用Invoke称号声明成员会埋没基类中的Invoke办法,即:
publicclassMyDerivedC:MyClass
{
newpublicvoidInvoke(){}
}
可是,由于字段x不是经由过程相似名埋没的,以是不会影响该字段。
经由过程承继埋没称号接纳以下情势之一:
1.引进类或布局中的常数、指定、属性或范例埋没具有不异称号的一切基类成员。
2.引进类或布局中的办法埋没基类中具有不异称号的属性、字段和范例。同时也埋没具有不异署名的一切基类办法。
3.引进类或布局中的索引器将埋没具有不异称号的一切基类索引器。
4.在统一成员上同时利用new和override是毛病的。
注重:在不埋没承继成员的声明中利用new润色符将天生告诫。
示例:在该例中,嵌套类MyClass埋没了基类中具有不异称号的类。该例不但申明了怎样利用完整限制名会见埋没类成员,同时也申明了怎样利用new润色符打消告诫动静。
usingSystem;
publicclassMyBaseC
{
publicclassMyClass
{
publicintx=200;
publicinty;
}
}
publicclassMyDerivedC:MyBaseC
{
newpublicclassMyClass//nestedtypehidingthebasetypemembers
{
publicintx=100;
publicinty;
publicintz;
}
publicstaticvoidMain()
{
//Creatingobjectfromtheoverlappingclass:
MyClassS1=newMyClass();
//Creatingobjectfromthehiddenclass:
MyBaseC.MyClassS2=newMyBaseC.MyClass();
Console.WriteLine(S1.x);
Console.WriteLine(S2.x);
}
}
输入:
100
200实不相瞒,Java是我见过的执行效率最低的程序设计语言,前不久在CSDN论坛上有个评测,计算9999的阶乘,同样的循环算法,Java的耗时是.NET的5倍。 |
|