| 网站首页 | JAVA文章 | AppServers | Web开发 | 应用开发 | 资源下载 | 论坛
    想学好编程,学好外语很重要  [enadd  2006年12月25日]        
设为首页 加入收藏 联系站长
您现在的位置: 编程笔记网 >> JAVA文章 >> JAVA基础 >> 文章正文
华山论剑:C#对Java        【字体:
华山论剑:C#对Java
作者:佚名    文章来源:不详    点击数:    更新时间:2006-4-16




C#中以引用方式传递值时,我们使用ref关键词。例如,如果编译并运行下面的代码,你将在控制台上看到输出结果16。注意i值被传递给ProcessNumber之后是如何被改变的。






 
 
 using System;

public class PassByReference {

public static void Main(String[] args) {

int i = 8;

ProcessNumber(ref i);

Console.WriteLine(i);

}

public static void ProcessNumber(ref int j) {

j = 16;

}

}

 
 

 
 

C#中还有一个允许以引用方式传递参数的关键词out,它与ref相似。但是,使用out时,作为参数传递的变量在传递之前不必具有已知的值。在上例中,如果整数i在传递给ProcessNumber方法之前没有初始化,则代码将出错。如果用out来取代ref,你就可以传递一个未经初始化的值,如下面这个修改后的例子所示。






 
 
 using System;

public class PassByReference {

public static void Main(String[] args) {

int i;

ProcessNumber(out i);

Console.WriteLine(i);

}

public static void ProcessNumber(out int j) {

j = 16;

}

}

 
 

 
 

经过修改之后,虽然i值在传递给ProcessNumber方法之前没有初始化,但PassByReference类能够顺利通过编译。



3.5、C#保留了指针 


对于那些觉得自己能够恰到好处地运用指针并乐意手工进行内存管理的开发者来说,在C#中,他们仍旧可以用既不安全也不容易使用的“古老的”指针来提高程序的性能。C#提供了支持“不安全”(unsafe)代码的能力,这种代码能够直接操作指针,能够“固定”对象以便临时地阻止垃圾收集器移动对象。无论从开发者还是用户的眼光来看,这种对“不安全”代码的支持其实是一种安全功能。“不安全”的代码必须用unsafe关键词显式地标明,因此开发者不可能在无意之中使用“不安全”的代码。同时,C#编译器又和执行引擎协作,保证了“不安全”的代码不能伪装成为安全代码。






 
 
 using System;

class UsePointer {

unsafe static void PointerDemo(byte[] arr) {

.

.

}

}

 
 

 
 

C#中的unsafe代码适合在下列情形下使用:当速度极端重要时,或者当对象需要与现有的软件(比如COM对象或者DLL形式的C代码)交互时。



3.6、代理 


代理(delegate)可以看作C++或者其他语言中的函数指针。然而,与函数指针不同的是,C#中的代理是面向对象的、类型安全的、可靠的。而且,函数指针只能用来引用静态函数,但代理既能够引用静态方法,也能够引用实例方法。代理用来封装可调用方法。你可以在类里面编写方法并在该方法上创建代理,此后这个代理就可以被传递到第二个方法。这样,第二个方法就可以调用第一个方法

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页  

文章录入:enadd    责任编辑:enadd 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • 数据库连接池Java实现小结

  • Java数据库编程中查询结果的…

  • Java,Beans和关系数据库的镜…

  • 课程介绍(11): SL-351 Java数…

  • 课程介绍(12): SL-330 用Jav…

  • JavaBeans和关系数据库的镜像

  • Java访问数据库的速度瓶颈问…

  • JDBC3.0有什么新特性

  • 利用javabean轻松实现对数据…

  • 利用javabean轻松实现对数据…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |