Session["dxef"]="aa";
string strTmp=Session["dxef"]; //A
strTmp=Session["dxef"]+""; //B
strTmp=Convert.ToString(Session["dxef"]); //C为什么A句会出错,而B、C可以通过?
A提示:无法将类型“object”隐式转换为“string”。存在一个显式转换(是否缺少强制转换?)
C可以理解,可为什么B可以隐式转换,而A不可以呢?
string strTmp=Session["dxef"]; //A
strTmp=Session["dxef"]+""; //B
strTmp=Convert.ToString(Session["dxef"]); //C为什么A句会出错,而B、C可以通过?
A提示:无法将类型“object”隐式转换为“string”。存在一个显式转换(是否缺少强制转换?)
C可以理解,可为什么B可以隐式转换,而A不可以呢?
解决方案 »
- 如何调整tabcontrol的tabpage标签的宽度
- 求推荐一个网站爬取工具,爬取整个网站的
- c#中的可访问性不一致问题
- 急求!VS的安装问题
- 一个关于Crystal Report 的问题!请大家帮帮忙!
- 关于DataRow.AcceptChanges 问题
- 如何将hashtable绑定到combobox?
- DataGridView 滚动条的问题
- 求助:SqlDataReader问题。为何我用READ()读取的时候总是说:“阅读器关闭时 Read 的尝试无效。”
- c#爬虫时爬取大量数据结果内容丢失了,用的时responseStream
- 现金求助,关于C#与数据库
- Access中插入布尔型数据
public static string Concat(object, object);
兄台,这是因为:
A : 左值为string 右值为object 不能隐式转换
应该这样写 string strTmp=Session["dxef"].ToString();B : 如上面朋友所说,右边的加法使.net默认调用了ConCat字符串连接的方法,结果是返回一个字符串型,那么左边和右边就是同一个类型了,可以赋值。C : 左值为String ,右值经过Convert.ToString()方法也转换成了String ,所以可以赋值。 回答完毕。
这两个类型不一样的
string strTmp=Session["dxef"].ToString(); //A
这样吧
再给你一个例子
int ttint = 5;
string abc = "1234" + ttint + "6789";
上面正确,下面错误:
string abc = ttint + "12346789";