日期:2014-05-19  浏览次数:21071 次

[C#]请问如何获得变量名的字符串,谢谢~
例如:
int   m_iHeight;
int   m_iWidth;
String   m_sName;

要获得如下字符串
"m_iHeight "
"m_iWidth "
"m_sName "

------解决方案--------------------
m_iHeight.tostring 试试
------解决方案--------------------
楼上的搞笑,问题也让人晕~~

不知道获得这个信息有什么意义??你用什么作为变量,编译后都没有差别了——当然,.Net这种编译模式会在反编译的时候反回来大部分信息。。。。

==================================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明: <我的帖子我做主,结贴率保持100%>
优惠接单开发,信誉保证,Q64180940(请清楚注明业务还是技术咨询)
==================================================================
------解决方案--------------------
如果这个几个变量放在一个结构中 用反射是可以取到名字的
但如果是临时变量确实意义不大
------解决方案--------------------
using System.Reflection can do this~~
------解决方案--------------------
嗯,我打算将一个类里面的属性保存到一个xml文件里面去,方便进行导入和保存
对应的xml element的名称采用变量的名称的字符串
========================
我晕 强沙发强快了 刚才没领会楼主意思

你要实现这种功能 序列化就可以吧 对应一些变量可以设定名称的 ,其实用的也是反射
------解决方案--------------------
foreach( System.Reflection.MemberInfo mi in mis )
{
string strname = mi.Name;

}
------解决方案--------------------
其实你把一个对象保存到一个文件中是不难做到的,引用楼主的话:
--------------
嗯,我打算将一个类里面的属性保存到一个xml文件里面去,方便进行导入和保存
对应的xml element的名称采用变量的名称的字符串
--------------


如果要使用序列化,可以参考下面的代码及说明:


1:序列化并保存一个类的实例

//可序列化的类(对类使用了[Serializable])的一个实例
MySerializableClass myObject = new MySerializableClass();
// 对myObject进行必要的设置,比如属性的设置
//...
//使用Xml把这个对象序列化并保存到一个Xml文件中:
XmlSerializer mySerializer = new XmlSerializer(typeof(MySerializableClass));
StreamWriter myWriter = new StreamWriter( "myFileName.xml ");
//写入myObject
mySerializer.Serialize(myWriter, myObject);
//关闭保存文件
myWriter.Close();


2:反序列化类的实例还原对象
//声明一个可序列化的类的变量以存放被还原的实例
MySerializableClass myObject;
//使用序列化类还原对象
XmlSerializer mySerializer = new XmlSerializer(typeof(MySerializableClass));
// 从Xml文件中读取数据
FileStream myFileStream = new FileStream( "myFileName.xml ", FileMode.Open);
// 调用Deserialize以反序列化还原对象
myObject = (MySerializableClass) mySerializer.Deserialize(myFileStream)