誰でもこれを動作させる方法を説明できますか?私は型名を渡していて、 "t"は正しく入力されています。私はobjectToCastを型 "t"にキャストする方法を理解できません。どんな助けもありがとうございます。C#で型にキャストする方法
....
Type t = Type.GetType("castToTypeNameHere");
o = CastTo<t>(objectToCast);
....
private T CastTo<T>(Object obj)
{
return (T)obj;
}
FYI、ここで私が見つけた答えだ:
Type t = Type.GetType(element.Attribute("castToType").Value);
MethodInfo castMethod = this.GetType().GetMethod("CastTo", BindingFlags.Instance | BindingFlags.NonPublic).MakeGenericMethod(t);
object castedObject = castMethod.Invoke(this, new object[] { objectToCast });
o = CastTo(obj); '' o =(t)obj; 'を使うだけでいいのはなぜですか? –
@Kieren: 't'は型名ではなく' Type'インスタンスであるため、与えられた例で 'CastTo(obj)'または '(t)obj'を使うことはできません。 –
LukeH
@Kieren、 '(t)obj;も' CastTo 'もできないので、質問してください。 –