C# 基本类-嵌套类
我有这样的想法:C# 基本类-嵌套类,c#,class,C#,Class,我有这样的想法: 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
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?
}
我不知道我做错了什么。为什么“船.发动机.活塞.活塞”不工作?因为
发动机
是类型的在船及其成员中
要解决此问题,可以执行以下操作:
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()
时,您没有创建任何引擎
或活塞
,因此您无法访问不存在对象的方法e活塞()?它编译吗?它是否通过一个例外?是否计算了意外值?