클래스 이름과 알 수없는 매개 변수 수를 사용자로부터 가져 와서 적절한 객체를 만드는 클래스를 생성하려고합니다. 내 코드를 실행할 때 MissingMethod 예외가 발생합니다. 알 수없는 매개 변수 수를 가진 문자열에서 객체 생성하기 #
이
내 코드입니다 : 당신은 String 클래스의 인스턴스를 생성하고using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Project2
{
class Class1
{
public static void Main()
{
Console.WriteLine("enter a class name");
string className = Console.ReadLine();
Console.WriteLine("enter parameters seperate with a space");
string parametersLine = Console.ReadLine();
string []parameters = parametersLine.Split(' ');
//Console.WriteLine(parameters.Length);
CreateObject createObject = new CreateObject(className, parameters);
Console.ReadKey();
}
}
class CreateObject
{
private readonly string className;
public CreateObject(string className, string[] parameters)
{
this.className = className;
try
{
if (parameters.Length == 1 && parameters[0] == "") // no parameters
{
Activator.CreateInstance(className.GetType());
}
else {
Activator.CreateInstance(className.GetType(), parameters);
}
}
catch (Exception e)
{
Console.WriteLine(e.GetType());
}
}
}
class Person
{
public int id{ get; set; }
public string name{ get; set; }
public Person()
{
Console.WriteLine("Created empety Person object");
}
public Person(int id, string name)
{
this.id = id;
this.name = name;
Console.WriteLine("Created Person object. " +"id:" + id + " name:" + name);
}
}
class Point
{
public int x { get; set; }
public int y { get; set; }
public int z { get; set; }
public Point()
{
Console.WriteLine("Created empety Point object");
}
public Point(int x, int y, int z)
{
this.x = x;
this.y = y;
this.z = z;
Console.WriteLine("Created Point object. " + "x:" + x + " y:" + y + " z:" + z);
}
}
}
코드에서 * string *을 인수 유형으로 사용하는 생성자 만 찾을 수 있습니다. 입력 된 매개 변수 값을 올바른 유형으로 변환해야하는 것은 중요하지 않습니다. 이 문제를 해결해야하는 이유를 추측하기가 꽤 어렵습니다. –
만이 처음입니다. 매개 변수가없는 생성자를 사용하여 작업 할 수도 있습니다. –