基本类 - 嵌套类
本文关键字:嵌套 | 更新日期: 2023-09-27 17:56:25
我有这样的东西:
public class Ship
{
public void PositionX_pixels_set1(float _position_x){position_x = _position_x;}
public class Engine : Ship
{
public int engines() { return 5; }
public class Piston
{
public int pistons(){return 5;}
}
}
}
void Main
{
Ship ship = new Ship()
int a = ship.Engine.Piston.pistons;//why this not working?
}
我不知道我做错了什么。为什么不是"船。发动机.活塞.活塞"工作?
因为Engine
是Ship
类及其成员中的类型。
要解决此问题,可以执行以下操作:
public class Ship
{
public void PositionX_pixels_set1(float _position_x){position_x = _position_x;}
private void Engine _myEngine = new Engine(); //DEFINE ENGINE MEMBER
public Engine MyEngine { //DEFINE A PROPERTY TO ACCESS THAT MEMBER
get {
return _myEngine;
}
}
public class Engine : Ship
{
public int engines() { return 5; }
private Piston _myPiston = new Piston();//DEFINE PISTON MEMBER
public Piston MyPiston {//DEFINE A PROPERTY TO ACCESS THAT
get {
return _myPiston ;
}
}
public class Piston
{
public int pistons(){return 5;}
}
MEMBER
}
}
使用后,例如:
int a = ship.MyEngine.MyPiston.pistons
您必须启动子类型(嵌套类型)的对象才能访问其方法,在您的情况下,您不会创建嵌套类型的任何对象,因此无法访问其方法。
创建new Ship()
时,您不会创建任何Engine
或Piston
,因此无法访问不存在对象的方法Pistons()
。