例如:
int? id = null;
string? name = null;
还有如:
public int?[] InsertTest(int? parentId, string name, DateTime? publishTime, decimal? price, bool? isGood, out int? minId)
{
// 仅为说明如何做错误处理
if (String.IsNullOrEmpty(name))
throw new ArgumentException("参数不能是空", "name"); int? id = null;
int? count = null;
minId = null; Singleton<TestTableAdapter>.Instance.InsertTest(parentId, name, publishTime, price, isGood, ref id, ref count, ref minId);
return new int?[] { id, count };
}
int? id = null;
string? name = null;
还有如:
public int?[] InsertTest(int? parentId, string name, DateTime? publishTime, decimal? price, bool? isGood, out int? minId)
{
// 仅为说明如何做错误处理
if (String.IsNullOrEmpty(name))
throw new ArgumentException("参数不能是空", "name"); int? id = null;
int? count = null;
minId = null; Singleton<TestTableAdapter>.Instance.InsertTest(parentId, name, publishTime, price, isGood, ref id, ref count, ref minId);
return new int?[] { id, count };
}
int ?id=null表是id可以为null值。
可惜找不到MSDN2原文连接了,
双问号---用于判断并赋值,先判断当前变量是否为null,如果是就可以赋一个新值,否则跳过!
public int? para;
//public int para;如果不注释掉此行,而把上一行注释掉的话,下面会报错!
public int par()
{
return this.para ?? 0;
}
可空类型是使用 ? 类型修饰符来构造的。例如,int? 是预定义类型 int 的可空形式。可空类型的基础类型必须是非可空的值类型。
可空类型是一个组合了基础类型的值和布尔空值指示符的结构。可空类型的实例具有两个公共只读属性:bool 类型的 HasValue 和可空类型的基础类型的 Value。HasValue 对所有非空实例都为 true,对空实例为 false。当 HasValue 为 true 时,Value 属性返回所包含的值。当 HasValue 为 false 时,尝试访问 Value 属性将引发异常。
可从任何非可空值类型隐式转换到该类型的可空形式。此外,还可从 null 文本隐式转换到任何可空类型。在下面的示例中
int? x = 123;
int? y = null;
if (x.HasValue) Console.WriteLine(x.Value);
if (y.HasValue) Console.WriteLine(y.Value);
int 值 123 和 null 文本被隐式转换为可空类型 int?。该示例针对 x 输出 123,但是第二个 Console.WriteLine 未执行,因为 y.HasValue 为 false
int?i
i可以=null