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則根據實例不同而不同。
新聞熱點
疑難解答