关于int和int?,赋值null

zpzhangwenhan 2013-01-10 04:59:22
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Person p = new Person();
p.Age = null;
p.Age2 =null;
}
}

public class Person
{
public int? Age
{
get;
set;
}
public int Age2
{
get;
set;
}

}
}



int 不能赋值为null
int? 能赋值为null
这是怎么回事
这两种类型有什么不同???
...全文
1389 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
梅梅2012 2013-01-11
  • 打赏
  • 举报
回复
引用 3 楼 dalmeeme 的回复:
int是值类型,不能为null;int?是“可空int”,是引用类型,可以为null。 参考:http://msdn.microsoft.com/zh-cn/library/1t3y8s4s(v=vs.80).aspx
+1 学习了
风骑士之怒 2013-01-11
  • 打赏
  • 举报
回复
public struct Nullable<T> where T : struct { private bool hasValue; internal T value;
boyoulin 2013-01-11
  • 打赏
  • 举报
回复
sp大师 说话永远那么含蓄加意境深远啊...
claymore1114 2013-01-11
  • 打赏
  • 举报
回复
为什么int 不能为null呢? 没有 那么多为什么,它规定死了,一种新语法而已。
无涯大者 2013-01-10
  • 打赏
  • 举报
回复
引用 17 楼 shuguangFJ 的回复:
int? 可空类型
。。。。。
  • 打赏
  • 举报
回复
引用 11 楼 dalmeeme 的回复:
更正一下:int?其实是值类型,不是引用类型。
嗯。
  • 打赏
  • 举报
回复
引用 14 楼 yleek 的回复:
去找找null符号的宏定义。。。 在c里是 #define null (void*)0 c++里是 #define null 0
在c#里边纠结起c/c++来了,这简直是画蛇添足。
  • 打赏
  • 举报
回复
引用 楼主 zpzhangwenhan 的回复:
这两种类型有什么不同???
一个是人民币,另外一个是花人民币买来的东西,你说有什么不同? 完全不同。虽然这些东西也可以变现,但是它毕竟不人民币,而只是可以当作商品交换的物品而已。
shuguangFJ 2013-01-10
  • 打赏
  • 举报
回复
int? 可空类型
ViewStates 2013-01-10
  • 打赏
  • 举报
回复
public struct Nullable<T> where T: struct
老张一笑 2013-01-10
  • 打赏
  • 举报
回复
int? 是引用类型啦,引用类型都可以赋值null 也就是.net封装了一下int,其实它就对应的是一个类 就好比string = String 一样 int?是C#的简写
yleek 2013-01-10
  • 打赏
  • 举报
回复
去找找null符号的宏定义。。。 在c里是 #define null (void*)0 c++里是 #define null 0
dalmeeme 2013-01-10
  • 打赏
  • 举报
回复
int? v1 = 3; Response.Write(v1 is ValueType);//输出true int? v2 = null; Response.Write(v2 is ValueType);//输出false 那么到底是值类型,还是引用类型?在《CLR via C#》中称其为“可空值类型”,不知道标准答案是什么。
dalmeeme 2013-01-10
  • 打赏
  • 举报
回复
int?是一种特殊的值类型,它的值可以为null。
dalmeeme 2013-01-10
  • 打赏
  • 举报
回复
更正一下:int?其实是值类型,不是引用类型。
Assassin_ 2013-01-10
  • 打赏
  • 举报
回复
int? 可空类型
  • 打赏
  • 举报
回复
int?其实就是Nullable<int>,是可空类型,可以赋值为null
zfjclark 2013-01-10
  • 打赏
  • 举报
回复
int?是可控类型,可以赋值为null
leafmao 2013-01-10
  • 打赏
  • 举报
回复
int?为可空类型
gnimgnot 2013-01-10
  • 打赏
  • 举报
回复
貌似是C#3.0的特性之一
加载更多回复(5)

110,566

社区成员

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

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

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