C# this和base
2013-11-17 23:37
127 查看
base关键字:其用于在派生类中实现对基类公有或者受保护成员的访问,但是只局限在构造函数、实例方法和实例属性访问器中,还有指定创建派生类实例时应调用的基类构造函数。
this关键字:限定被相似的名称隐藏的成员,将对象作为参数传递到其他方法,声明索引器 。
this关键字:限定被相似的名称隐藏的成员,将对象作为参数传递到其他方法,声明索引器 。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Audi audi = new Audi("linQ",60); audi[1] = "A6"; audi[2] = "A8"; Console.WriteLine(audi[1]); audi.Run(); audi.ShowResult(); Console.ReadLine(); } } public class Action { public static void ToRun(Vehicle vehicle) { Console.WriteLine("{0} is running.", vehicle.ToString()); } } public class Vehicle { private string name; private int speed; private string[] array = new string[10]; public Vehicle() { } //限定被相似的名称隐藏的成员 public Vehicle(string name, int speed) { this.name = name; this.speed = speed; } public virtual void ShowResult() { Console.WriteLine("The top speed of {0} is {1}.", name, speed); } public void Run() { //传递当前实例参数 Action.ToRun(this); } //声明索引器,必须为this,这样就可以像数组一样来索引对象 public string this[int param] { get { return array[param]; } set { array[param] = value; } } } public class Car : Vehicle { //派生类和基类通信,以base实现,基类首先被调用 public Car() : base("Car", 200) { } //指定创建派生类实例时应调用的基类构造函数 public Car(string name, int speed) : this() { } public override void ShowResult() { //调用基类上已被其他方法重写的方法 base.ShowResult(); Console.WriteLine("It's a car's result."); } } public class Audi : Car { public Audi() : base("Audi", 300) { } public Audi(string name, int speed) : this() { } public override void ShowResult() { //由三层继承可以看出,base只能继承其直接基类成员 base.ShowResult(); base.Run(); Console.WriteLine("It's audi's result."); } } }
相关文章推荐
- C# this,base 关键字分析(转载)
- C# this和base
- C# this,base,new关键字
- C# this、base的两种用法
- php中的Base62类(适用于数值转字符串)
- Linux Baseic
- #define SYSTEMSERVICE(_func) KeServiceDescriptorTable.ServiceTableBase[ *(PULONG)((PUCHAR)_func+1) 这
- How does SQL Plan Management match SQL statements to SQL plan baselines?
- build/core/base_rules.mk:195: already define
- CAP, BASE, 最终一致性和五分钟原则
- poj 1220 NUMBER BASE CONVERSION(短除法进制转换)
- xutils Error:(37, 39) 错误: 无法访问HttpRequestBase 找不到org.apache.http.client.methods.HttpRequestBase的类文件
- Android中万能的BaseAdapter的使用
- 关于SpringMVC MockMvc测试 Can't find bundle for base name javax.servlet.LocalStrings, locale zh_CN错误
- HDOJ 3879 - Base Station 最大权闭合子图(最小割解决)
- NativeBase自定义组件样式
- ISO/IEC 14496-12:2005 -- Part 12: ISO base media file format
- Kingbase金仓查看表空间占用率
- CSS中base.css的代码
- /usr/include/asm-generic/errno-base.h和errno.h对errno值的宏定义