回 帖 发 新 帖 刷新版面

主题:求教:c#中关于类型转换的问题

问题如下,想吧字符串变成相应的属性类型,使用converter函数:
Type type;
object instance;
string[] Name = new string[5]{ "Text", "Font", "Location", "Size", "BackColor" };
string[] Value = new string[5]{ "Haha", "宋体, 12pt", "23,23", "400,400", "255, 192, 192" };

string strType = "System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
type = Type.GetType(strType);                       //获得type
instance = Activator.CreateInstance(type);          //创建一个实例

for (int i = 0; i < 5; i++)
{
      object value;
      PropertyDescriptor prop = TypeDescriptor.GetProperties(instance)[Name[i]];
      value = prop.Converter.ConvertFromInvariantString(Value[i]);
}
程序把5个属性分别赋了相应值,赋值过程中,由于属性值是以字符串形势给出,所以要转为相应属性类型,使用ConvertFromInvariantString函数可以达到功能要求.

现在问题这样.我建立了一个wince的工程,里面converter类不能使用函数ConvertFromInvariantString,这里想求教一下,怎样用别的方法实现这个转化?有没有比较好的方法?给提供一个思路也可以!~
望大家多帮帮忙,谢谢了先~~!!

回复列表 (共3个回复)

沙发

简单点的问题.我试着把string类型的字符串"23,23",转化为System.Drawing.Point类型,才能赋值给属性location.我写的强制转换:
value = (System.Drawing.Point)prevalue;
prevalue为字符串类型.

这样写提示不能进行这样的转换,估计是这两个类型不能这样强制转换.

有没有什么好的办法解决啊?大家帮帮忙啊 ~~

板凳

UP

.NET 做网站,计算机毕业设计
QQ: 381991787
Email: glacier000@163.com

3 楼

我们可以尝试着往类型匹配面想,把"Text", "Font", "Location", "Size", "BackColor" 作为要匹配或者目的匹配的条件,用Value去逐一的Match.这只是我的思路!

我来回复

您尚未登录,请登录后再回复。点此登录或注册