当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 编程技巧OOPs:复制构造函数

ASP.NET
在ASP.NET中如何用C#.NET实现基于表单的验证
ADO.NET Entity Framework 试水:并发
.Net的精髓:XML和SOAP
多语言开发的个人体验
ASP.NET Routing对请求的处理方式
探索.Net中的委托
使用 ASP.NET 加密口令
[ASP.NET] Session 详解
ASP+ 与 Java
从ASP迁移至ASP+
从ASP迁移至ASP+ ----------进入DataSet
从ASP迁移至ASP+ --将HTML表格转换为ASP+数据列表
从ASP迁移至ASP+ --处理会话变量(Session Variables)
ASP+ 与 Java(一)
ASP+ 与 Java(二)
asp+的论坛列表程序---代码部分
asp+的论坛列表程序---页面部分
什么是受管(managed)?
用c#写的asp+域名查询程序
ASP+联结数据库

ASP.NET 中的 编程技巧OOPs:复制构造函数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-23   浏览: 271 ::
收藏到网摘: n/a

OOPs

1. 什么是复制构造函数

我们知道构造函数是用来初始化我们要创建实例的特殊的方法。通常我们要将一个实例赋值给另外一个变量c#只是将引用赋值给了新的变量实质上是对同一个变量的引用,那么我们怎样才可以赋值的同时创建一个全新的变量而不只是对实例引用的赋值呢?我们可以使用复制构造函数。

我们可以为类创造一个只用一个类型为该类型的参数的构造函数,如:

public Student(Student student)
{
this.name = student.name;
}

使用上面的构造函数我们就可以复制一份新的实例值,而非赋值同一引用的实例了。

class Student
{
private string name;

public Student(string name)
{
this.name = name;
}
public Student(Student student)
{
this.name = student.name;
}

public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
}

class Final

{

static void Main()

{

Student student = new Student ("A");

Student NewStudent = new Student (student);

student.Name = "B";

System.Console.WriteLine("The new student's name is {0}", NewStudent.Name);

}

}

The new student's name is A.

2.什么是只读常量

就是静态的只读变量,它通常在静态构造函数中赋值。

class Numbers
{
public readonly int m;
public static readonly int n;

public Numbers (int x)
{
m=x;
}

static Numbers ()
{
n=100;
}

} //其中n就是一个只读的常量,对于该类的所有实例他只有一种值,而m则根据实例不同而不同。