下記で、td.Noneのように使用できるように割り当てられるでしょうか?
Enumで取り出し、tostring()で列挙名自体は取り出せています。
(この方法でなく、直接割り当てる方法)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Enumrefrection { class Program { static void Main(string[] args) { test t1 = new test(15); // Type ty = Type.GetType("Enumrefrection.test+Status"); //var tg = ty.GetField("Status", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); Type ty = t1.GetType(); var tg = ty.GetField("Enumrefrection.test+Status", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); var td = (Enum)tg.GetValue(t1); // td.Noneのように使用したい } } class test { private enum Status { None = 0, Rnu, Stop }; private int S1 = 0; public test(int s) { S1 = s; } } } コード
やりたいことが読めないのと、提示されたソースにノイズが多いので予測もしづらいです。
関係ないメンバー変数とかコンストラクタのパラメータとか極力除去して単純な形でソースを提示してください。あといらないコードは消してください。完結に何がしたいのか書いてください。
回答2件
あなたの回答
tips
プレビュー