Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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# 4.0 什么是Activator.CreateInstance?工作情况如何?_C# 4.0_C# 3.0 - Fatal编程技术网

C# 4.0 什么是Activator.CreateInstance?工作情况如何?

C# 4.0 什么是Activator.CreateInstance?工作情况如何?,c#-4.0,c#-3.0,C# 4.0,C# 3.0,请查找下面的代码。有人能告诉我Activator.CreateInstance如何处理抽象类吗?我创建了抽象类,在抽象类中有一个抽象方法,在普通类中继承了三个不同的类。我提到的类返回了正确的值,我想知道它是如何工作的?提前谢谢 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Sample_App { abstract class ABSClas

请查找下面的代码。有人能告诉我Activator.CreateInstance如何处理抽象类吗?我创建了抽象类,在抽象类中有一个抽象方法,在普通类中继承了三个不同的类。我提到的类返回了正确的值,我想知道它是如何工作的?提前谢谢

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sample_App
{
    abstract class ABSClass
    {
        public abstract int AddTwoNumbers();

    }
class FirstClass : ABSClass
{
    public override int AddTwoNumbers()
    {
        return 1 + 2;
    }
}

class SecondClass : ABSClass
{
    public override int AddTwoNumbers()
    {
        return 3 + 2;
    }
}

class ThirdClass : ABSClass
{
    public override int AddTwoNumbers()
    {
        return 3 + 2;
    }
}

class Program
{
    static void Main(string[] args)
    {
        Type ClassType = Type.GetType("Sample_App.FirstClass");
        ABSClass obj = Activator.CreateInstance(ClassType) as ABSClass;
        int i = obj.AddTwoNumbers();
    }


}

}
Activator.CreateInstance
在本例中与
ABSClass
完全无关。你只是在铸造返回值,当然你可以自由地这么做。谢谢@Jon。我理解这个节目。我想知道Activator.CreateInstance的角色是什么?当我们不得不使用这种方法时。我们已经在程序中的多个类中实现了抽象方法,它如何正确地到达指定的类?然后Activator.Creatinstance方法将正常工作?请参阅谢谢@Jon Nice链接