構(gòu)造函數(shù):在初始化時(shí)就執(zhí)行的函數(shù),
使用構(gòu)造函數(shù)來實(shí)現(xiàn)兩個(gè) 類 之間傳值(可以是任何類型,string,int,類 可以將他們視為 對象)
構(gòu)造函數(shù)可以帶有參數(shù),并且有多個(gè)重載方法。
函數(shù)的參數(shù)只能在函數(shù)內(nèi)部使用,所以需要一個(gè)外部變量來接受這個(gè)要傳的值。
請看以下代碼,
主函數(shù):
class PRogram { static void Main(string[] args) { //可以在初始化時(shí)直接帶入?yún)?shù)。 Class1 a1 = new Class1();//初始化Class1 Class2 a2 = new Class2(a1);//初始化Class2,帶參數(shù) a1(Class1類) Console.WriteLine(a2.Mingzi);//打印 Class2 中的變量Mingzi。 //打印結(jié)果: 張三 Class1 b1 = new Class1(); b1.gaizhi("李四");//調(diào)用函數(shù)gaizhi。修改了Class1中變量name的值 Class2 b2 = new Class2(b1);//初始化Class2,帶參數(shù) b1(Class1類) Console.WriteLine(b2.Mingzi); //打印結(jié)果: 李四 Class1 c1= new Class1(); c1.gaizhi("王五");//調(diào)用函數(shù)gaizhi。修改了Class1中變量name的值 Class2 c2 = new Class2(b1);//所帶參數(shù)仍是 b1 Console.WriteLine(c2.Mingzi); //打印結(jié)果: 李四 Class2 c3 = new Class2(c1);//所帶參數(shù) c1 Console.WriteLine(c3.Mingzi); //打印結(jié)果: 王五 Console.ReadLine(); } }
Class1 類:
class Class1 { public string name;//外部變量 public Class1()//構(gòu)造函數(shù) { name = "張三"; } //函數(shù) gaizhi(string類型參數(shù)) public void gaizhi(string ming) { name = ming; } }Class2 類:
class Class2 { public string Mingzi;//外部變量 public Class2()//構(gòu)造函數(shù) { } public Class2(string name)//構(gòu)造函數(shù)的其他重載方法,參數(shù)是string類型 { //函數(shù)中的參數(shù)只可在函數(shù)中使用,需要一個(gè)外部變量來接受才能在外部使用 Mingzi = name;//外部變量賦值,將Mingzi指向name。 } public Class2(Class1 classname)//構(gòu)造函數(shù)的其他重載方法,參數(shù)是 類(Class1) 類型 { Mingzi = classname.name;//外部變量賦值,將Mingzi指向Class1.name。 } }對象1=對象2 把 對象1 指向 對象2
通過構(gòu)造函數(shù)我們可以在其他類中對另一個(gè)類中的對象進(jìn)行操作。
譬如:文本的查找、替換功能。
以下知識(shí)一段代碼,查找指定文本并選中指定文本,
這里是查找對話框的一部分代碼:
public partial class chazhao : Form { public chazhao() { InitializeComponent(); } private jsb chuangti; public chazhao(string ss, jsb chuangti00) { InitializeComponent(); cz_czshuru.Text = ss;//把主窗口中選中的文本寫人到查找輸入框cz_czshuru chuangti = chuangti00;//把主窗體傳過來。 } private void czxiayige_Click(object sender, EventArgs e) { int chang, weizhi; string czsr; czsr = cz_czshuru.Text;//查找輸入框中的文本 chang = cz_czshuru.Text.Length;//文本長度 weizhi = chuangti.shurukuang.Text.IndexOf(czsr);//查找主窗體中符合文本的索引 chuangti.shurukuang.Select(weizhi, chang);//選中主窗體中符合的文本 chuangti.Focus();//主窗體獲得焦點(diǎn) } //載入 private void chazhao_Load(object sender, EventArgs e) { } //取消按鈕 private void cz_quxiao_Click(object sender, EventArgs e) { this.Close(); } }這里是主窗體中的一部分代碼
public partial class jsb : Form { public jsb() { InitializeComponent(); } private void 查找ToolStripMenuItem_Click(object sender, EventArgs e) { //初始化查找對話框時(shí)帶入?yún)?shù) shurukuang是主窗體中文本框的名字//括號(hào)內(nèi)的兩個(gè)參數(shù),前面的是主窗體中選中的文本內(nèi)容,后面的this是指這個(gè)主窗體。 chazhao cz = new chazhao(this.shurukuang.SelectedText,this);
cz.Owner = this;//設(shè)置對話框是他的子窗口(查找窗體是記事本窗體的子窗口) cz.Show();//顯示查找對話框 } }
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注