请帮助我,我有一类这个类型的:如何创建类的变量列表
class Class1
{
///<summary>1</summary>
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public class Point
{
///<summary>1-1</summary>
public double x;
};
///<summary>2</summary>
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public class Base : Point
{
///<summary>2-1</summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
public char[] Name;
///<summary>2-2</summary>
public UInt64 type;
///<summary>2-3</summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
public char[] Model;
};
///<summary>3</summary>
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public class Object : Base
{
///<summary>3-1</summary>
public int State;
///<summary>3-2</summary>
public double G;
///<summary>3-3</summary>
public float L;
///<summary>3-4</summary>
public Point M = new Point();
///<summary>3-4</summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 25)]
public char[] fdsArrNull;
};
}
如何从这个类中创建的变量列表,我怎么可以从评论变量?
我需要一个列表,得到的变量和评论,但没有值的名称。
谢谢您的回复,如果类是小的,然后它工作得很好,但如果类是大是因为它有可能加速这一进程很慢?我有一个非常大的课,我需要去触摸它100次,第二次,我抚摸它,我喜欢这样
public static List<KeyValuePair<string, string>> listData_Obj = new List<KeyValuePair<string, string>>();
private static void Get_data_from_obj()
{
FieldInfo[] fields = Obj.GetType().GetFields();
listData_Obj.Clear();
foreach (FieldInfo field in fields)
{
MN = field.Name;
if (field.FieldType.Namespace.Equals("System"))
{
if (field.FieldType.Name == "Char[]")
{
char[] char_field = (char[])field.GetValue(Obj);
string str = new string(char_field);
listData_Obj.Add(new KeyValuePair<string, string>(MN, str.TrimEnd('\0')));
}
else
{
listData_Obj.Add(new KeyValuePair<string, string>(MN, field.GetValue(Obj).ToString()));
}
}
else
{
var fields_of_field = field.GetValue(Obj);
foreach (var field2 in fields_of_field.GetType().GetFields())
{
if (field2.FieldType.Namespace.Equals("System"))
{
if (field2.FieldType.Name == "Char[]")
{
var char_field = (char[])field2.GetValue(fields_of_field);
string str = new string(char_field);
listData_Obj.Add(new KeyValuePair<string, string>(MN+"."+field2.Name, str.TrimEnd('\0')));
}
else
{
listData_Obj.Add(new KeyValuePair<string, string>(MN + "." + field2.Name, field2.GetValue(fields_of_field).ToString()));
}
}
else
{
var str = MN + "." + field2.Name + ".";
recurs(field2, fields_of_field, str);
}
}
}
}
}
static void recurs(FieldInfo field, dynamic fields_of_field,string strn)
{
var fields_of_field2 = field.GetValue(fields_of_field);
foreach (var field2 in fields_of_field2.GetType().GetFields())
{
if (field2.FieldType.Namespace.Equals("System"))
{
if (field2.FieldType.Name == "Char[]")
{
var char_field = (char[])field2.GetValue(fields_of_field2);
string str = new string(char_field);
listData_Obj.Add(new KeyValuePair<string, string>(strn+"."+MN+"."+field2.Name, str.TrimEnd('\0')));
}
else
{
listData_Obj.Add(new KeyValuePair<string, string>(strn + "." + MN + "." + field2.Name, field2.GetValue(fields_of_field2).ToString()));
}
}
else
{
var str1 = strn + MN + "." + field2.Name + ".";
recurs(field2, fields_of_field2, str1);
}
}
}
却是尽管事实上在单独的线程很慢,它运行
这类型究竟你需要一个列表?为什么你会忽略评论? – HimBromBeere
是否要生成文档? – Dzienny
HimBromBeere:我需要列表,Dzienny:不,我需要在列表框中显示这些变量的列表 –
XmaksasX