public struct Site
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 30)]
public string Country;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)]
public string StationNumber;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
public string RadarType;
public int LongitudeValue;
public short MangFreq;
}
for ()
{
//遍历结构体中的变量
}
对于数组有Foreach,对于结构体用什么方法呢?
11 个解决方案
#1
foreach (System.Reflection.FieldInfo fieldInfo in typeof(Site).GetFields())
{
System.Console.Write(fieldInfo.Name);
}
#2
foreach(var fieldInfo in typeof(Site).GetFields())
{
Console.WriteLine("Name:{0},Type{1}",fieldInfo.Name,fieldInfo.FieldType);
}
#3
foreach(var fieldInfo in typeof(Site).GetFields())
{
Console.WriteLine("Name:{0},Type{1}",fieldInfo.Name,fieldInfo.FieldType);
}
注意使用var关键字进行结构体的类型推断就行了
#4
采用数组循环
#5
哎兄弟我还停留在VS2005中,不能用VAR关键字,“用var关键字进行结构体的类型推断”是啥意思?
另外,1楼的
foreach (System.Reflection.FieldInfo fieldInfo in typeof(Site).GetFields())
{
System.Console.Write(fieldInfo.Name);
}
显示的是变量名啊,改成System.Console.Write(fieldInfo.Tostring());也还是变量名
另外,1楼的
foreach (System.Reflection.FieldInfo fieldInfo in typeof(Site).GetFields())
{
System.Console.Write(fieldInfo.Name);
}
显示的是变量名啊,改成System.Console.Write(fieldInfo.Tostring());也还是变量名
#6
你要的是什么
#7
VS2005也支持啊,var关键字是.net 3.0推出的。你安装.net 3.0的SDK应该就可以用了
,“用var关键字进行结构体的类型推断”,因为不知道你的结构体总有什么类型的数据,所以使用类型推断var关键字来遍历结构体中的所有变量啊。
,“用var关键字进行结构体的类型推断”,因为不知道你的结构体总有什么类型的数据,所以使用类型推断var关键字来遍历结构体中的所有变量啊。
#8
foreach (System.Reflection.FieldInfo fieldInfo in typeof(Site).GetFields())
{
System.Console.Write(fieldInfo.GetValue(site对象实例).ToString());
}
#9
反射 得到 变量Info
变量Info.getValue(obj) 反射获得 值
变量Info.getValue(obj) 反射获得 值
#10
出来了,能说说是什么原理么?谢谢了!
#11
foreach里面的东西你看懂就够了。。。反射!
#1
foreach (System.Reflection.FieldInfo fieldInfo in typeof(Site).GetFields())
{
System.Console.Write(fieldInfo.Name);
}
#2
foreach(var fieldInfo in typeof(Site).GetFields())
{
Console.WriteLine("Name:{0},Type{1}",fieldInfo.Name,fieldInfo.FieldType);
}
#3
foreach(var fieldInfo in typeof(Site).GetFields())
{
Console.WriteLine("Name:{0},Type{1}",fieldInfo.Name,fieldInfo.FieldType);
}
注意使用var关键字进行结构体的类型推断就行了
#4
采用数组循环
#5
哎兄弟我还停留在VS2005中,不能用VAR关键字,“用var关键字进行结构体的类型推断”是啥意思?
另外,1楼的
foreach (System.Reflection.FieldInfo fieldInfo in typeof(Site).GetFields())
{
System.Console.Write(fieldInfo.Name);
}
显示的是变量名啊,改成System.Console.Write(fieldInfo.Tostring());也还是变量名
另外,1楼的
foreach (System.Reflection.FieldInfo fieldInfo in typeof(Site).GetFields())
{
System.Console.Write(fieldInfo.Name);
}
显示的是变量名啊,改成System.Console.Write(fieldInfo.Tostring());也还是变量名
#6
你要的是什么
#7
VS2005也支持啊,var关键字是.net 3.0推出的。你安装.net 3.0的SDK应该就可以用了
,“用var关键字进行结构体的类型推断”,因为不知道你的结构体总有什么类型的数据,所以使用类型推断var关键字来遍历结构体中的所有变量啊。
,“用var关键字进行结构体的类型推断”,因为不知道你的结构体总有什么类型的数据,所以使用类型推断var关键字来遍历结构体中的所有变量啊。
#8
foreach (System.Reflection.FieldInfo fieldInfo in typeof(Site).GetFields())
{
System.Console.Write(fieldInfo.GetValue(site对象实例).ToString());
}
#9
反射 得到 变量Info
变量Info.getValue(obj) 反射获得 值
变量Info.getValue(obj) 反射获得 值
#10
出来了,能说说是什么原理么?谢谢了!
#11
foreach里面的东西你看懂就够了。。。反射!