run-time
文字列を介してクラスを取得し、ExampleAbstract:new()のようなジェネリックの機能を引き続き使用するにはどうすればよいですか?
Cannot convert type 'System.Type' to 'CodeStuff.Automobile' [ReminderCodeFolder]
Windowsリフレクションを使用して型を取得するとエラーが発生します。
public abstract class Automobile{
public abstract void stuff();
}
public class Car : Automobile{
public override void stuff(){
Console.WriteLine("Nice");
}
}
public class Program{
public static void CarStuff(Automobile b){
b.stuff();
}
static void Main(string[] args){
Type ReadType = Type.GetType("CodeStuff.Car");
CarStuff(Automobile(/*Solution*/))
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CodeStuff
{
public abstract class Automobile
{
public abstract void stuff();
}
public class Car : Automobile
{
public override void stuff()
{
Console.WriteLine("nice");
}
}
class Program
{
public static void CarStuff(Automobile b)
{
b.stuff();
}
static void Main(string[] args)
{
Type ReadType = Type.GetType("CodeStuff.Car");
Object obj = Activator.CreateInstance(ReadType);
CarStuff((Automobile)obj);
Console.ReadLine();
}
}
}
出力:nice
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加