CSharp难点逐个击破文档分享
2014-01-22 19:31
363 查看
一般情况,方法的参数传递是通过值进行传递的,即一个对象作为参数传递给方法使用,该对象便进驻到该参数对象所在指针的内存空间(使用C来描述),也就是该对象在此位置创建了副本,当方法运行结束时,该副本将会被销毁;这种传递方式的使用占据了日常方法传参的绝大多数。
另一种情况是引用传递,它与值传递方式不同,对象传递给方法时对方法参数并没有影响,仍然返回的是受原始参数取值影响的方法,即MethodInstance(ref _refValue)调用 Method(ref _arg)方法,但_refValue对Method无影响,返回的仍是_arg影响的结果。这点也能想到_arg必须在使用前赋值。
之前提到ref是将原方法中的参数影响的结果返回到调用它的方法中,out与ref类似,相比之下,ref传递参数的地址,out是返回值。传值(by value)与传址(by reference)分别为普通传递参数方式与ref声明方式,传址方式在使用前需要ref关键词修饰;out为输出返回传递,与ref相同之处较多,其重要区别是在上一节讲到的ref在被引用方法中必须被初始化;out在被引用方法中一定要有返回值。
类的访问类型有时也叫访问级别,使用以下访问修改符:Public、Protected、Private、internal、protected internal。讲这四类之间的区别时有必要讲解一个概念:程序集。程序集(Assembly),可以简单理解为编译之后生成的.dll或.exe文件,相对于namespace是类库的逻辑组织形式,它可以称为程序类库的物理组织形式,msdn上描述“程序集包含描述它们自己的内部版本号和它们包含的所有数据和对象类型的详细信息的元数据”。一般情况是一个程序集可以包含一个或者多个命名空间。
点击下载
一般情况,方法的参数传递是通过值进行传递的,即一个对象作为参数传递给方法使用,该对象便进驻到该参数对象所在指针的内存空间(使用C来描述),也就是该对象在此位置创建了副本,当方法运行结束时,该副本将会被销毁;这种传递方式的使用占据了日常方法传参的绝大多数。
另一种情况是引用传递,它与值传递方式不同,对象传递给方法时对方法参数并没有影响,仍然返回的是受原始参数取值影响的方法,即MethodInstance(ref _refValue)调用 Method(ref _arg)方法,但_refValue对Method无影响,返回的仍是_arg影响的结果。这点也能想到_arg必须在使用前赋值。
之前提到ref是将原方法中的参数影响的结果返回到调用它的方法中,out与ref类似,相比之下,ref传递参数的地址,out是返回值。传值(by value)与传址(by reference)分别为普通传递参数方式与ref声明方式,传址方式在使用前需要ref关键词修饰;out为输出返回传递,与ref相同之处较多,其重要区别是在上一节讲到的ref在被引用方法中必须被初始化;out在被引用方法中一定要有返回值。
类的访问类型有时也叫访问级别,使用以下访问修改符:Public、Protected、Private、internal、protected internal。讲这四类之间的区别时有必要讲解一个概念:程序集。程序集(Assembly),可以简单理解为编译之后生成的.dll或.exe文件,相对于namespace是类库的逻辑组织形式,它可以称为程序类库的物理组织形式,msdn上描述“程序集包含描述它们自己的内部版本号和它们包含的所有数据和对象类型的详细信息的元数据”。一般情况是一个程序集可以包含一个或者多个命名空间。
点击下载
相关文章推荐
- C#难点逐个击破2out返回参数
- Csharp编程指南+参考手册文档分享
- C#难点逐个击破3params数组参数
- C#难点逐个击破(6):C#数据类型与.net framework数据类型
- C#难点逐个击破(9):类型转换
- 原创电子书:C#难点逐个击破
- C#难点逐个击破(4):main函数
- C#难点逐个击破(8):可空类型System.Nullable
- C#难点逐个击破(1):ref参数传递
- 今天刚刚注册博客,希望可以努力学习,分享技术文档
- 文档大全分享
- ios内嵌qq分享-终端开放SDK使用文档
- docin.com豆丁网 - 分享文档 发现价值
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)(1)
- C#基础概念二十五问文档分享