可空类型的使用问题

newlz2000 2007-06-09 10:50:01
初学C#,用VS2005.net
using System.Text;
#endregion

namespace consoleTry1
{

class Program
{
static void Main(string[] args)
{
int? nFirst =1 ;
int Second = 2;

nFirst = Second;
nFirst = 123;
Second = nFirst;
}
}
}

在程序段 Second = nFirst报错
错误 1 无法将类型“int?”隐式转换为“int”。存在一个显式转换(是否缺少强制转换?) F:\temp\C_Sharp\consoleTry1\consoleTry1\Program.cs 19 21 consoleTry1

但是我在网上看到的教程说如果可空变量不包含空值的话是可以和非可空变量交换值的,但是为什么编译不过去呢??
...全文
144 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
newlz2000 2007-06-10
  • 打赏
  • 举报
回复
这段我是在网上看到的教程
http://www.vs2005.com/Category/CSharp-VB.NET/Article/251/1/default.aspx
然道是这上面错了??

那上面写到:这上面说可以用"可以使用内建的隐式转换来转换相同类型的可空变量和非可空变量"

使用可空类型

  可空类型可以像普通值类型一样的使用。事实上,可以使用内建的隐式转换来转换相同类型的可空变量和非可空变量。这意味着你可以在一个标准整型和可空整型之间相互转换:

int nFirst = null;
int Second = 2;

nFirst = Second; // 有效
nFirst = 123; // 有效
Second = nFirst; // 同样有效

refyl 2007-06-10
  • 打赏
  • 举报
回复
下面就是强制转换,不能隐式
nFirst = (int)Second;
LeoMaya 2007-06-09
  • 打赏
  • 举报
回复
int? nFirst =1 ;
int Second = 2;

nFirst = Second;
nFirst = 123;
//Second = nFirst;
if(nFirst.HasValue)
Second=(int)nFirst;

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧