5 个解决方案
#1
this就是“当前对象实例的引用”。至于怎么使用它,是你自己的事。请自己去结合编程的需求去想,“放开”一点就行了。
#2
限定被相似的名称隐藏的成员
将对象作为参数传递到其他方法
声明索引器
public class Action
{
public static void ToRun(Vehicle vehicle)
{
}
}
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()
{
}
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();
}
}
public class Audi : Car
{
public Audi()
: base("Audi", 300)
{ }
public Audi(string name, int speed)
: this()
{
}
public override void ShowResult()
{
base.ShowResult();
base.Run();
}
}
将对象作为参数传递到其他方法
声明索引器
public class Action
{
public static void ToRun(Vehicle vehicle)
{
}
}
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()
{
}
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();
}
}
public class Audi : Car
{
public Audi()
: base("Audi", 300)
{ }
public Audi(string name, int speed)
: this()
{
}
public override void ShowResult()
{
base.ShowResult();
base.Run();
}
}
#3
public class A
{
int x;
void show()
{
Console.WriteLien(this.x);//这里this 就是调用当前对象,也可以不用this 直接写x,不过这样的话有可能无法区分是类属性还是临时变量了,出了class A this就无用了。
}
}
{
int x;
void show()
{
Console.WriteLien(this.x);//这里this 就是调用当前对象,也可以不用this 直接写x,不过这样的话有可能无法区分是类属性还是临时变量了,出了class A this就无用了。
}
}
#5
感谢大家精彩的讲解,谢谢
#1
this就是“当前对象实例的引用”。至于怎么使用它,是你自己的事。请自己去结合编程的需求去想,“放开”一点就行了。
#2
限定被相似的名称隐藏的成员
将对象作为参数传递到其他方法
声明索引器
public class Action
{
public static void ToRun(Vehicle vehicle)
{
}
}
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()
{
}
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();
}
}
public class Audi : Car
{
public Audi()
: base("Audi", 300)
{ }
public Audi(string name, int speed)
: this()
{
}
public override void ShowResult()
{
base.ShowResult();
base.Run();
}
}
将对象作为参数传递到其他方法
声明索引器
public class Action
{
public static void ToRun(Vehicle vehicle)
{
}
}
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()
{
}
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();
}
}
public class Audi : Car
{
public Audi()
: base("Audi", 300)
{ }
public Audi(string name, int speed)
: this()
{
}
public override void ShowResult()
{
base.ShowResult();
base.Run();
}
}
#3
public class A
{
int x;
void show()
{
Console.WriteLien(this.x);//这里this 就是调用当前对象,也可以不用this 直接写x,不过这样的话有可能无法区分是类属性还是临时变量了,出了class A this就无用了。
}
}
{
int x;
void show()
{
Console.WriteLien(this.x);//这里this 就是调用当前对象,也可以不用this 直接写x,不过这样的话有可能无法区分是类属性还是临时变量了,出了class A this就无用了。
}
}
#4
#5
感谢大家精彩的讲解,谢谢