现在的位置: 首页 > 综合 > 正文

VS2005警告 “将文本作为对 Control.set_Text(String):Void 的调用的参数”

2012年08月12日 ⁄ 综合 ⁄ 共 631字 ⁄ 字号 评论关闭

VS2005.
下面这句出现错误警告
Label1.Text = "===="

警告 14 CA1303 : Microsoft.Globalization : Form1.Form1_Load(Object, EventArgs):Void 将文本作为对 Control.set_Text(String):Void 的调用的参数 1 进行传递。请改为从资源表中检索以下字符串参数:“====”

出现警告原因:

在VS里当启用了本地化支持的时候,与区域差异相关的信息会被存储在单独资源文件里,在运行时.NET的Warp会依据当前操作系统的区域信息动态加载对应的资源。作为IDE的辅助智能的一部分,在编译的时候他会帮助开发者检查是否存在某些未通过资源获取的操作,比如你的“xxx.Text="===="”,这个时候他就会提醒你,应该把这个“====”放在每一份本地化资源文件里,并通过资源ID读取于当前趋于相对应的值。

所以结论是:如果你的获取的文本资源在不同的本地化资源文件中存在不同的值,比如“确认”或者“OK”,就应该把它放在资源文件中,通过ID提取,至于这个“====”,忽略警告就可以了。

解决办法:
  如果一定要把这个警告解决掉,可以添加个资源文件,让后在资源文件里添加一个记录,如:string1 ,====。
然后在代码里Label1.Text = "====" 改为 Resources.Res.ResourceManager.GetString("string1")Res 就是你添加的资源文件的名字

抱歉!评论已关闭.