Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET在声明为对象后调用类函数_Vb.net_Class_Generics_Object - Fatal编程技术网

VB.NET在声明为对象后调用类函数

VB.NET在声明为对象后调用类函数,vb.net,class,generics,object,Vb.net,Class,Generics,Object,我想看看是否有办法做到这一点。。。我将vs2010与WP7SDK一起使用。(VB.NET) 我在全球范围内宣布这一点 作为对象的公共对象名 然后说我有类:Game1和Game2 在本例中,我们只说这两个类都有一个Update()函数 我想设置objGame=Game1(或Game2) 然后可以调用objGame.Update() 有办法做到这一点吗?用方法Update()声明接口IGame。从中继承Game1和Game2 IGame objGame= Game1() [or Game2] ob

我想看看是否有办法做到这一点。。。我将vs2010与WP7SDK一起使用。(VB.NET)

我在全球范围内宣布这一点

作为对象的公共对象名

然后说我有类:
Game1
Game2

在本例中,我们只说这两个类都有一个
Update()
函数

我想设置
objGame=Game1
(或Game2)

然后可以调用
objGame.Update()


有办法做到这一点吗?

用方法Update()声明接口IGame。从中继承Game1和Game2

IGame objGame= Game1() [or Game2]

objGame.Update()

下面是关于OOP中多态性的wiki。

首先将您的公共对象声明为Game1或Game2

Public objGame As New Game1
objGame.Update()
那么无论你对这个对象做什么,实际上都代表了游戏1或游戏2

Public objGame As New Game1
objGame.Update()

您可以使用反射来获取类对象的类型,然后在将其转换为特定类后调用update方法

C#中的代码片段,可能是您将了解该做什么。这里是共享类中的
对象
,将对象设置为您的类Game1或Game2。然后访问,然后使用少量反射来处理运行时的对象

public static class GameCommon
    {
        public static object currentGame;
    }
///Use.GetType()

另一个最好的方法是它
接口
多态性和IMHO它是正确的实现方式

选中此项:

public static class GameCommon
    {
        public static IGame currentGame;
    }

    public interface IGame
    {
        void Update();
    }
    public class Game1 : IGame
    {
        public void Update()
        {
            Console.WriteLine("Running:Game1 Updated");
        }
    }

    public class Game2 : IGame
    {
        public void Update()
        {
            Console.WriteLine("Running:Game2 Updated");
        }
    }`
称之为:

GameCommon.currentGame = new Game1();

            if (GameCommon.currentGame != null)
            {
                GameCommon.currentGame.Update();
            }

            GameCommon.currentGame = new Game2();
            GameCommon.currentGame.Update();
            Console.ReadKey();`

希望这对您有所帮助。

+1获得正确的信息和建议。。但是op在某种程度上是关于提取指定类对象的引用类型。。。