C#构造函数的继承和引用方法
来源:互联网 发布:迅雷赚钱宝pro 知乎 编辑:程序博客网 时间:2024/06/05 22:54
http://www.zxbc.cn/html/20081215/68959.html关于C# WinForm中实现基于角色的权限菜单
大家都知道C#构造函数主要用来设置类中属性的初始值,但经常会忽视类的构造方法也可以象方法一样引用调用父类中的构造方法或本身的其他构造方法。往往因此写了很多重复代码。下面的代码介绍了类的构造方法的几种用法。
using System;
namespace TestApplication
{
class Test
{
static void Main(string[] args)
{
TestA testA1 = new TestA();
Console.WriteLine("测试类A无参数构造方法");
Console.WriteLine(testA1.ToString());
Console.WriteLine();
TestA testA2 = new TestA("Set First Param");
Console.WriteLine("测试类A一个参数构造方法");
Console.WriteLine(testA2.ToString());
Console.WriteLine();
TestB testB1= new TestB();
Console.WriteLine("测试类B无参数构造方法");
Console.WriteLine(testB1.ToString());
Console.WriteLine();
TestB testB2 = new TestB("Set First Param");
Console.WriteLine("测试类B一个参数构造方法");
Console.WriteLine(testB2.ToString());
Console.WriteLine();
TestB testB3 = new TestB("Set First Param", "Set Second Param");
Console.WriteLine("测试类B两个参数构造方法");
Console.WriteLine(testB3.ToString());
Console.WriteLine();
TestB testB4 = new TestB("Set First Param", "Set Second Param", "Set Third Param");
Console.WriteLine("测试类B三个参数构造方法");
Console.WriteLine(testB4.ToString());
Console.WriteLine();
Console.ReadLine();
}
}
/// <summary>
/// 测试类A
/// </summary>
class TestA
{
protected string _testValueA;
/// <summary>
/// 无参数构造方法
/// </summary>
public TestA():this("Set First Param")
{
}
/// <summary>
/// 一个参数构造方法
/// </summary>
/// <param name="value"></param>
public TestA(string value)
{
_testValueA = value;
}
/// <summary>
/// 重新ToString方法
/// </summary>
/// <returns></returns>
public override string ToString()
{
return this._testValueA;
}
}
/// <summary>
/// 测试类TestB,从TestA类中继承
/// </summary>
class TestB : TestA
{
protected string _testValueB;
protected string _testValueC;
/// <summary>
/// 调用父类中的构造方法
/// </summary>
public TestB():base()
{
this._testValueB = "Set Second Param";
this._testValueC = "Set Third Param";
}
/// <summary>
/// 调用父类中的构造方法
/// </summary>
/// <param name="valueA"></param>
public TestB(string valueA)
: base(valueA)
{
this._testValueB = "Set Second Param";
this._testValueC = "Set Third Param";
}
/// <summary>
/// 调用其他构造方法
/// </summary>
/// <param name="valueA"></param>
/// <param name="valueB"></param>
public TestB(string valueA, string valueB)
: this(valueA, valueB, "Set Third Param")
{
}
/// <summary>
/// 三个参数的构造方法
/// </summary>
/// <param name="valueA"></param>
/// <param name="valueB"></param>
/// <param name="valueC"></param>
public TestB(string valueA, string valueB, string valueC)
{
this._testValueA = valueA;
this._testValueB = valueB;
this._testValueC = valueC;
}
/// <summary>
/// 重新ToString方法
/// </summary>
/// <returns></returns>
public override string ToString()
{
return this._testValueA + "/n" + this._testValueB + "/n" + this._testValueC ;
}
}
}
输出结果:
测试类A无参数构造方法
Set First Param
测试类A一个参数构造方法
Set First Param
测试类B无参数构造方法
Set First Param
Set Second Param
Set Third Param
测试类B一个参数构造方法
Set First Param
Set Second Param
Set Third Param
测试类B两个参数构造方法
Set First Param
Set Second Param
Set Third Param
测试类B三个参数构造方法
Set First Param
Set Second Param
Set Third Param
- C#构造函数的继承和引用方法
- C#构造函数继承
- C#构造函数继承
- C#继承与构造函数的调用
- C#的引用、属性、构造函数
- 1.8 C# 继承和继承关系中的构造函数
- 构造函数继承方法的说明:
- php构造函数的继承方法
- java8 方法或构造函数的引用
- C++, C#引用的区别和C#的类为什么没有拷贝构造函数
- C++, C#引用的区别和C#的类为什么没有拷贝构造函数
- C++, C#引用的区别和C#的类为什么没有拷贝构造函数
- C#继承|继承中构造函数的调用
- C++中继承和调用父类的构造函数方法,外加MFC常见dialog继承
- 构造函数和继承
- 继承和构造函数
- C#几个例子[静态构造函数,继承,虚方法]
- 编写继承类的复制构造函数和构造函数
- c# 流的概念及操作文本文件实例代码
- C# 获取数据库表信息与列信息的方法总结
- 测试的几个误区
- C#遍历整个文件夹及子目录的文件代码
- InstallAnywhere Enterprise Edition 添加文件时候老卡住,怎么办?
- C#构造函数的继承和引用方法
- stepinto stepout stepover的区别
- 云存储“有效”应用和云存储“无效”应用——2009-1-15 CTO俱乐部第一次聚会“云计算”后记
- 学习内容
- php 二维数组入mysql 数据库
- 正确理解 C# 中的 ref 关键字
- 基于Internet Web2.0的客户关系管理
- 浅谈ViewState
- 与php md5算法完全一致的C语言版