C#:尝试调用 class 中的方法
C#: Trying to invoke a method in a class
我正在编写游戏。每个级别都有一个 class(级别 1、级别 2 等),告诉游戏要设置哪些对象以及其他内容。每个级别共享一个接口 iLevel。
场景中的所有物体都可以访问iLevel中的任何东西,但有时我想调用一个只存在于特定关卡中的方法class。
例如:
public class Level1, iLevel {
public int GetANumber() {
return 5;
}
}
调用class需要这样做:
public class SomeObject {
iLevel myLevel = new iLevel();
int x = ... // now I need to call GetANumber() without knowing that object is Level1, Level2, etc.
}
我认为我需要以某种方式使用 invoke,但我无法让它工作。我阅读了 msdn 上的文档,但仍然无法正常工作。
非常感谢您的帮助!
在这里,您可以使用带有 is 和 as 运算符的 if 条件,或者使 iLevel 成为抽象 class 并返回 GetNumber默认为负值。
public class SomeObject {
iLevel myLevel = new iLevel();
int x = -1;
if(myLevel is Level1) {
x = (myLevel is Level1).GetANumber();
}
}
或者
public abstract class iLevel {
public virtual int GetANumber() {
return -1;
}
}
public class Level1 : iLevel {
public override int GetANumber() {
return 5;
}
}
我正在编写游戏。每个级别都有一个 class(级别 1、级别 2 等),告诉游戏要设置哪些对象以及其他内容。每个级别共享一个接口 iLevel。
场景中的所有物体都可以访问iLevel中的任何东西,但有时我想调用一个只存在于特定关卡中的方法class。
例如:
public class Level1, iLevel {
public int GetANumber() {
return 5;
}
}
调用class需要这样做:
public class SomeObject {
iLevel myLevel = new iLevel();
int x = ... // now I need to call GetANumber() without knowing that object is Level1, Level2, etc.
}
我认为我需要以某种方式使用 invoke,但我无法让它工作。我阅读了 msdn 上的文档,但仍然无法正常工作。
非常感谢您的帮助!
在这里,您可以使用带有 is 和 as 运算符的 if 条件,或者使 iLevel 成为抽象 class 并返回 GetNumber默认为负值。
public class SomeObject {
iLevel myLevel = new iLevel();
int x = -1;
if(myLevel is Level1) {
x = (myLevel is Level1).GetANumber();
}
}
或者
public abstract class iLevel {
public virtual int GetANumber() {
return -1;
}
}
public class Level1 : iLevel {
public override int GetANumber() {
return 5;
}
}