可空值类型
2018-06-18 00:34:43来源:未知 阅读 ()
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace _03可空值类型
{
class Program
{
static void Main(string[] args)
{
#region 可空值类型
//引用类型可空,值类型不可空
//int n = 10;
//string s = "hello";
//s = null;
//n = null;
// int? 等价于 Nullable<int>
//int? n = 10;
//Nullable<int> n = 10;
//n = null;
//n = 100;
//n++;
//Console.WriteLine(n);
//Console.WriteLine("ok");
//Console.ReadKey();
//Nullable继承于Struct,结构体是值类型的,并不能真正赋值为null(详见图一)
//所以可控制类型并没有把一个NULL值赋值给 变量n,而是编译时用另一中方式让你看起来可以为NULL。
//Nullable<int> n = 10;
//内部执行过程
//Nullable<int> n;
// 如果有值,那么内部HasValue属性赋值为true
//n.HasValue = true;
//然后赋值
//n.Value = 10;
//Nullable<int> n = null;
//如果为Null,那么只把HasValue属性赋值为false,并不真正赋值。
//n.HasValue = false;
// 使用到的时候,例如判断 int? n =null 时候为null值。
//if (n==null) //实际等价于 if(!n.HasValue)
//{
//}
// 下同
//int? n = 10;
//double? d = 10.1;
//float? x = 99;
//bool? b = false;
////string? s = "aaa"; 报错可空值类型只能用于值类型,不能应用于引用类型,因为引用类型本身可以赋值为null。
#endregion
#region 使用带参数sql语句时的一个问题
string sql = "insert into TblPerson values(@name,@age,@height,@gender)";
SqlParameter[] pms = new SqlParameter[] {
new SqlParameter("@name","王五"),
new SqlParameter("@age",0), //报错 重载识别错误,详见图二。
//new SqlParameter("@age",System.Data.SqlDbType.Int){Value=0}, //建议指明类型。
new SqlParameter("@height",180),
new SqlParameter("@gender",true)
};
_02封装SqlHelper类.SqlHelper.ExecuteNonQuery(sql, pms);
Console.WriteLine("ok");
Console.ReadKey();
#endregion
}
}
}
图一 、利用反编译软件 .NetReflector 7.0 查看内部代码:
图二 重载问题
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:测试一下
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- SWIG 3 中文手册——11. 类型映射 2020-06-07
- Visual Studio 2019提示不能将const char*类型的值分配到con 2020-06-07
- C++ 共用体 2020-06-05
- C++ 后置返回类型 2020-05-30
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash