|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
因为各系统的API不同,代码调用API编写程序就会遇到很多不兼容的地方,比如Java改写后的Serv-U就不能在手机上执行,手机的游戏也不能直接在微机上执行。标准 C#是一种命令式言语,但像一切命令式言语一样,它具有某些声明性元素。比方,经由过程将类中的办法声明为public、protected、internal、protectedinternal或private,指定它的可会见性。C#使此功效一样平常化,以便程序员能够制造出一种新的声明性信息,将此声明性信息附加到各类程序实体,并在运转时检索此声明性信息。程序经由过程界说和利用属性(第17节)来形貌这类分外的声明性信息。
比方,一个框架大概会界说一个可安排在程序元素(如类和办法)上的HelpAttribute属性,使开辟职员可以供应从程序元素到其文档的映照。示例
usingSystem;
[AttributeUsage(AttributeTargets.All)]
publicclassHelpAttribute:Attribute
{
publicHelpAttribute(stringurl){
this.url=url;
}
publicstringTopic=null;
privatestringurl;
publicstringUrl{
get{returnurl;}
}
}
界说了一个名为HelpAttribute的属性类,它具有一个定位参数(stringurl)和一个定名参数(stringTopic)。正如第17.1节中所注释的,该属性能够经由过程它的完全称号HelpAttribute或经由过程它的隐式简称Help援用。定位参数由该属性类的大众实例机关函数的形参界说,定名参数则由属性类的大众非静态读写字段和对应的属性界说。
示例
[Help("http://www.microsoft.com/.../Class1.htm")]
publicclassClass1
{
[Help("http://www.microsoft.com/.../Class1.htm",Topic="F")]
publicvoidF(){}
}
显现Help属性的几种用法。
在运转时能够使用反射撑持检索给定程序元素的属性信息。示例
usingSystem;
classTest
{
staticvoidMain(){
Typetype=typeof(Class1);
object[]arr=type.GetCustomAttributes(typeof(HelpAttribute),true);
if(arr.Length==0)
Console.WriteLine("Class1hasnoHelpattribute.");
else{
HelpAttributeha=(HelpAttribute)arr[0];
Console.WriteLine("Url={0},Topic={1}",ha.Url,ha.Topic);
}
}
}
反省Class1是不是具有Help属性,假如具有该属性,则写出联系关系的Topic和Url值。
那做企业软件是不是最好用J2EE? |
|