Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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
C# 从超类调用重载构造函数后要调用的强制方法_C#_Unity3d - Fatal编程技术网

C# 从超类调用重载构造函数后要调用的强制方法

C# 从超类调用重载构造函数后要调用的强制方法,c#,unity3d,C#,Unity3d,我正在做一个unity3d项目,我有一个抽象对象,我将从其他对象调用它。我希望我的所有子类在完成构造后调用某个虚方法。基本上,将调用基构造函数,然后是重载构造函数,最后是我的方法,但我希望从基对象定义此行为。您可以强制子类实现名为Initialize的抽象方法,然后选择基类中的调用顺序: public abstract class MyBaseClass { public abstract void Initialize(); public My

我正在做一个unity3d项目,我有一个抽象对象,我将从其他对象调用它。我希望我的所有子类在完成构造后调用某个虚方法。基本上,将调用基构造函数,然后是重载构造函数,最后是我的方法,但我希望从基对象定义此行为。

您可以强制子类实现名为Initialize的抽象方法,然后选择基类中的调用顺序:

    public abstract class MyBaseClass
    {
        public abstract void Initialize();

        public MyBaseClass()
        {
            // Code of the constructor of the base class

            // Calling the subclass 
            Initialize();

            // Finally call the special method
            MySpecialMethod();
        }

        private void MySpecialMethod()
        {
            // Some code here
        }
    }

    public class MySubclass : MyBaseClass
    {
        public override void Initialize()
        {
            // Some code here
        }
    }

您能提供一些sampe代码来显示您的类结构吗?使用工厂来构造您的对象,并让工厂调用所需的虚拟方法。