易截截图软件、单文件、免安装、纯绿色、仅160KB

C#、ASP.NET中ref和out的区别

这两个数据类型是我们在学习C#语言的过程中数据比较难的两个数据类型,不过他们很重要,所以有必要拿出来说说他们的使用方法和不同之处,希望对你有所帮助。
先总的来说:
通常我们向方法中传递的是值.方法获得的是这些值的一个拷贝,然后使用这些拷贝,当方法运行完毕后,这些拷贝将被丢弃,而原来的值不将受到影响.此外我们还有其他向方法传递参数的形式,引用(ref)和输出(out).
有时,我们需要改变原来变量中的值,这时,我们可以向方法传递变量的引用,而不是变量的值.引用是一个变量,他可以访问原来变量的值,修改引用将修改原来变量的值.变量的值存储在内存中,可以创建一个引用,他指向变量在内存中的位置.当引用被修改时,修改的是内存中的值,因此变量的值可以将被修改.当我们调用一个含有引用参数的方法时,方法中的参数将指向被传递给方法的相应变量,因此,我们会明白,为什么当修改参数变量的修改也将导致原来变量的值.
Ref指明了方法中使用的是引用型参数,引用型参数不开辟新的内存区域。当利用引用型参数向方法传递形参时,编译程序将把实际值在内存中的地址传递该方法。引用型参数通常已经初始化。  
如  
int   i=1,j=2;//初始化  
Swap(ref   i,ref   j);  
Out输出型参数也不开辟新的内存区域,但与引用型参数不同的是,调用方法之前无需对变量进行初始化,输出型参数主要用于传递方法返回的数据。  
string   name,path;//没有初始化  
File(out   name,out   path);
首先先说ref:(MSDN)
C# 关键字 | 方法参数
方法参数上的 ref 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用 ref 参数,必须将参数作为 ref 参数显式传递到方法。ref 参数的值被传递到 ref 参数。传递到 ref 参数的参数必须最先初始化。将此方法与 out 参数相比,后者的参数在传递到 out 参数之前不必显式初始化。
属性不是变量,不能作为ref 和out参数传递。
如果两种方法的声明仅在它们对 ref 的使用方面不同,则将出现重载。但是,无法定义仅在 ref 和 out 方面不同的重载。例如:
//以下重载声明是有效的:
class MyClass
{
public void MyMethod(int i) {i = 10;}
public void MyMethod(ref int i) {i = 10;}
}
但以下重载声明是无效


相关文档:

ASP.NET 2.0 Page 加载的过程

只有在◎Page指令中设置了:AutoEventWireup="true",服务器端的编译器将按照 Page_eventname 方法名的形式自动的检查相应事件处理方法,自动实现事件的订阅。
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System ......

asp.net开发常用技巧

1. 打开新的窗口并传送参数:
传送参数:
response.write("<script>window.open
('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="++"')</script>")
接收参数:
string a = Request.QueryString("id");
string b = Request.QueryString("id1");
2.为按钮添加对话框
Button1.Attributes.Add("o ......

ASP.NET环境下配置FCKEditor并上传图片及其它文件

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lzy_1515/archive/2010/03/22/5405250.aspx
FCKEditor于2009年被更名为新一代的CKEditor和CKFinder,见http://ckeditor.com/。只是本来是一个的产品(FCKEditor)现在变成了两个(CKEditor + CKFinder),如果要上传文件到服务器上,最新版本的CKEditor + CKFinde ......

ASP.NET 2.0中GridView无限层复杂表头的实现

实现方法就是给单元格填充我们想要的格式代码。
 
 
==============C#==============
<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script run ......

经典的Asp.net三层设计

三层的划分:
        目的:高内聚,低耦合,为更好的实现分布式开发和维护。
        用户界面层: 页面,用户控件,图片,样式表
        业务逻辑层:业务接口( BusinessInterface ), 业务实体( BusinessEntity),业务逻辑(BusinessLogic)
    ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号