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;}
}
但以下重载声明是无效
相关文档:
只有在◎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 ......
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 ......
本文来自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 ......
实现方法就是给单元格填充我们想要的格式代码。
==============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 ......
三层的划分:
目的:高内聚,低耦合,为更好的实现分布式开发和维护。
用户界面层: 页面,用户控件,图片,样式表
业务逻辑层:业务接口( BusinessInterface ), 业务实体( BusinessEntity),业务逻辑(BusinessLogic)
  ......