今天学习发现有段代码的输出结果有些理解不了,如图1,输出的结果全部为 false;

图1

后来和同事讨论研究了一下才明白,原来是这样:↓

 class Program
{
static void Main(string[] args)
{
//输出在屏幕上的
//string s = "10";
//bool b=int.TryParse(s,out int i);
object obj = ;
string i1 = obj as string;//obj转换string失败这里相当于是赋值了null,相当于声明了变量之后并未赋值:string i1;
string i2 = obj as string;
//i1 = 1;//无法将类型“int”隐式转换为“string”
i1 = "hehe";//不报错
Console.WriteLine(i1);//"hehe",实际i1是string类型,只不过当一个变量的值为null的时候,他就不是任何类型了
// Console.WriteLine(i1 is null);
//Console.WriteLine(obj is int);//true
Console.WriteLine(i2 is object);//false
Console.ReadKey();
}
}

C#中null值属于什么变量类型的更多相关文章

  1. Java中返回值定义为int类型的 方法return 1返回的是int还是Integer&&finally中return问题

    在Java中返回值定义为int类型的 方法return 1:中返回的是Integer值,在返回的时候基本类型值1被封装为Integer类型. 定义一个Test类,在异常处理try中和finally中分 ...

  2. Oracle中NULL值与索引

    NULL值是关系数据库系统布尔型(true,false,unknown)中比较特殊类型的一种值,通常称为UNKNOWN或空值,即是未知的,不确定的.由于NULL存在着无数的可能,因此NULL值也不等于 ...

  3. MySQL下concat函数中null值问题

    在mysql中,使用CONCAT(str1,str2,...)函数拼接字符串的过程中,如果你拼接的字段当中有值为null,那么拼接的结果就为null 注: select CONCAT(字段1,字段2) ...

  4. 细说Oracle中NULL值

    1.NULL是什么? NULL表示UNKNOW(未知),其不代表不论什么值. 比如一行中某列没有不论什么值即为NULL. ORACLE同意不论什么一种数据类型的字段为空,除了下面两种情况: 1)主键字 ...

  5. 面试题((A)null).fun()——java中null值的强转

    面试题分享 public class A {public static void fun1() { System.out.println("fun1"); } public voi ...

  6. hive 配置文件以及join中null值的处理

    一.Hive的參数设置 1.  三种设定方式:配置文件 ·   用户自己定义配置文件:$HIVE_CONF_DIR/hive-site.xml ·   默认配置文件:$HIVE_CONF_DIR/hi ...

  7. Javascript中null值,特别注意的两点

    null 是一个javascript字面量,表示空值,就是没有对象被呈现.他是javascript原始值之一.null值常被放在期望一个对象上,但是不引用任何对象的参数位置,也就是说对象的初始化. 我 ...

  8. 微软BI 之SSIS 系列 - 对于平面文件中 NULL 值处理过程中容易极易混淆的几个细节

    开篇介绍 最近有人问我有关文件处理中空值处理的相关问题: OLE DB Destination 中的 Keep Nulls 如何控制 NULL 值的显示? 为什么选中了 Keep Nulls 但是数据 ...

  9. SQL——处理列中NULL值

    处理NULL值 - 数据库中某列为NULL值,使用函数在列值为NULL时返回固定值.    SQLServer:ISNULL(col,value)        示例:SELECT ISNULL(co ...

随机推荐

  1. lynis-*nix安全审计

    cd /usr/local/lynis ./lynis --man 全部检查: ./lynis --check-all -Q 采用crontab自动检查: ./lynis -c --auditor & ...

  2. Spring 获取资源文件路径

    import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; s ...

  3. 仿iPhone滑屏操作

    <!DOCTYPE html> <html> <head>     <meta charset="utf-8">     <m ...

  4. 【WP8.1】页面的导航效果

    <Page.Transitions> <TransitionCollection> <NavigationThemeTransition> <CommonNa ...

  5. C++ 补遗

    C++通过引用传递数组 数组形参可以声明为数组的引用.如果形参是数组的引用,编译器不会将数组实参转化为指针,而是传递数组的引用本身. 在这种情况下,数组大小成为形参和实参类型的一部分(实参长度与形参长 ...

  6. ES6 学习笔记之三 函数参数默认值

    定义函数时为参数指定默认值的能力,是现代动态编程语言的标配.在ES6出现之前,JavaScript是没有这种能力的,框架为了实现参数默认值,用了很多技巧. ES6 的默认参数值功能,与其他语言的语法类 ...

  7. 曲演杂坛--使用ALTER TABLE修改字段类型的吐血教训

    --===================================================================== 事件起因:开发发现有表插入数据失败,查看后发现INT类型 ...

  8. 记录FormsAuthentication的使用方法

    配置,配置mode="Forms",其他属性详见 MSDN(点我直接查看各authentication属性) . <configuration> <system. ...

  9. fast powf

    测试结果: sum (fast) in clock 1562sum (fast2) in clock 1407sum (fast3) in clock 3156sum in clock 7797Err ...

  10. Java中的String,StringBuilder,StringBuffer的区别

    这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面. 首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > ...