C# 为被调用的字符串创建一个实例

C# 为被调用的字符串创建一个实例,c#,reflection,C#,Reflection,我试图创建一个泛型方法,其中我必须向泛型数据类型附加一些字符串,并创建附加字符串的实例 例如: 我有两节课 反对意见1, 反对意见2, 反对意见3, 对象4,…对象100和 Object1地址, Object2Address, 对象3地址, Object4Address,…Object100Address 现在我有方法处理每个对象,例如MethodObject1()、MethodObject2()、MethodObject3()、MethodObject4() 但是有大约100个对象,所以我必须

我试图创建一个泛型方法,其中我必须向泛型数据类型附加一些字符串,并创建附加字符串的实例

例如: 我有两节课 反对意见1, 反对意见2, 反对意见3, 对象4,…对象100和 Object1地址, Object2Address, 对象3地址, Object4Address,…Object100Address

现在我有方法处理每个对象,例如MethodObject1()、MethodObject2()、MethodObject3()、MethodObject4()

但是有大约100个对象,所以我必须以类似的方式创建100个方法。 所以我想创建一个通用方法

There is a method which returns only the an array of Object name from an XML file.
Eg: ObjectName[] objectName = GetObjects(); // Returns an array of Object Names from XML file so that 

objectName[0] = Object1;
objectName[1] = Object2;
objectName[2] = Object3;
objectNmae[3] = Object4;
.
.
.
objectName[99] = Object100;

I am looping through objectName array
foreach(var objectItem in objectName)
{
    MethodName<objectItem>();
}

In my generic method I can create an instance of object, like
MethodName<T>()
{
   T t = new T();
   Some how I have to get the name of T and append Address to T 
   So that I can create TAddress instance like
   TAddress tAddress = new TAddress();

}
有一种方法,它只返回XML文件中的对象名数组。
例如:ObjectName[]ObjectName=GetObjects();//从XML文件返回对象名称数组,以便
objectName[0]=Object1;
objectName[1]=Object2;
objectName[2]=Object3;
objectNmae[3]=Object4;
.
.
.
objectName[99]=Object100;
我正在遍历objectName数组
foreach(objectName中的var objectItem)
{
MethodName();
}
在我的泛型方法中,我可以创建对象的实例,如
MethodName()
{
T=新的T();
一些我如何得到T的名字和附加地址到T
这样我就可以创建一个像
TAddress TAddress=新TAddress();
}

有没有什么方法可以用C sharp来实现这一点?

您的案例并不需要通用方法

您可能希望在类中重写
ToString
方法

class PersonAddress()
{
    public override string ToString()
    {
        return string.Concat(this.Street, ", ",  this.City, ", ", this.Postcode);
    }
}

class Person()
{
    public override string ToString()
    {
        return string.Concat(this.Name, ", ",  this.PersonAddress.ToString());
    }
}

注意
Person
类如何重用
PersonAddress.ToString()
方法。

即使进行了编辑,我仍然无法理解您的要求。然而,为了取得进展,我将提供一个答案,至少有助于分离出您想要的东西

public class ThingWithAddress<T>
{
    public T Item { get; private set; }
    public string Address { get; private set; }

    public static ThingWithAddress<T> Create(T item, string address)
    {
        return new ThingWithAddress<T>
        {
            Item = item,
            Address = address,
        };
    }
}

不要误解这一点,但你可能需要学习足够多的C来制定一个好的问题,因为从目前的情况来看,这个问题似乎令人困惑且不一致。

如果你使用的是
Person
,为什么需要一个通用方法?如果你确实需要它是泛型的,那么你要传递给它的不同类之间有什么相似之处呢?Oded说了什么。您正在以通用方法使用与
Person
有关的所有内容。这不是办法。如果我理解正确的话,您希望有两个任意类型
T
TAddress
,并且
T
应该有一个接受字符串的方法来创建
TAddress
?请澄清您关于这一点的问题。问题中的术语令人困惑:“附加到”在您使用它的方式上没有意义。你能更具体地说明你想要什么作为输入和输出吗?不清楚您是否希望对象实例具有Person和Address字段,或者是否能够将属性“string Address”添加到现有实例上,或者是什么。最新的编辑显示“将某些字符串附加到泛型数据类型并创建附加字符串的实例”-因此您希望签名看起来像“string方法”(T item,string someString)“?哦,你想要一些项目和字符串作为输入,然后一个字符串作为输出?你是说string.Concat?string.Join是用于收集的是,对不起。-更新了答案。
public class ThingWithAddress<T>
{
    public T Item { get; private set; }
    public string Address { get; private set; }

    public static ThingWithAddress<T> Create(T item, string address)
    {
        return new ThingWithAddress<T>
        {
            Item = item,
            Address = address,
        };
    }
}
Person person = ...;
var personWithAddress = ThingWithAddress.Create(person, "some address");