变量类型和可空类型

1、变量类型

a、静态类型:编译时确定且不能在不能在运行时修改。

b、动态类型:直到运行时才会被解析。

由于动态语言(如:IronPython和IronRuby)为.NET语言,所以C#程序需要能够使用这些语言编写的程序集。为解决这一问题,C#语言的设计者为语言增加了dynamic关键字。

c、dynamic关键字:代表一个特定的、实际的C#类型,它知道如何在运行时解析自身。也就是说,它是动态化的静态类型。

2、可空类型

在一些情况下,我们希望表示变量目前未保存有效的值。对于引用类型,我们可以将变量设置为null。而定义值类型的变量,我们可以使用布尔指示器和变量关联,如果值有效,则设置为true,否则就设置为false。可空类型允许创建可以标记为有效或无效的值类型,而普通的值类型称作非可空类型。

创建:可空类型总是基于另外一个已声明类型,这个类型称为基层类型。你不需要在代码中显式声明可空类型。相反,只需要声明可空类型的变量即可,编译器会自动为你隐式创建可空类型。如果要创建可空类型的变量,只需要在变量声明中在底层类型名字后面增加一个问号。如:int? myINT = 28;

  检查可空类型是否包含值,只需要和null比较。

在非可空类型和其可空版本之间存在隐式转换,在可空类型和其非可空版本之间存在显示转换。

赋值:我们可以为可空类型的变量赋3种类型的值

a.其底层类型的值

b.相同可空类型的值

c.null值

:int? myI1,myI2,myI3;

       myI1 = 28;

       myI2 = myI1;

       myI3 = null;

Console.WriteLine("myI1:{0},myI2:{1}",  myI1,myI2);

时间: 2024-10-18 21:22:12

变量类型和可空类型的相关文章

C#中的不可空类型转为可空类型

默认下,C#只有两种类型: 1. 可空类型:(是指可为null) 大部分的对象, 如: Dog dog = null; 2. 不可空类型: 基本值类型,布尔类型等,如: int a = 0 ;//正确 int a = null;//错误 3. 不可空转为可空类型的方法:  int? a = null; //在不可空类型后面加上问号"?"就可以转换为可空类型了 小提示: 在数据库中int类型也是可以为空的,微软为了在概念上保持一致才推出了此举, 当然它的意义并不止如此,继续深入探究吧.

C#的可空类型与不可空类型

null:为空,表示产量没有指向任何对象, 如:string = null; int a = null;//是错的 但可以这样,在类型后面加一个问号. int? a = null;//这就是正确的,是一种特殊的int类型 int b = 12; 加了问号后不能直接与int转换 int b = a;//这是错误的 int b = (int)a;//强制类型转换后,是正确的,但必须保证 //a不为null 总结:不为空数据类型,在后面加上问号后就可以为null, 但他是一种特殊的类型

可空类型

可空类型.匿名方法和迭代器这三个优美的特性是在C#2.0里面提出来的. 1.可空类型 当我们在使用数据库的时候,会发现这样的一个矛盾点:数据库的字段设置是允许为null的,比如日期的字段,当你想把数据库表映射为C#中的对象时会发现,DateTime类型在C#语言中是不能为null的! 1.1 简介 可空类型也是值类型,但它是包含null值的值类型:int? nullable=null; int?就是可空的int类型.很明显,这又是一个语法糖,肯定不会存在int?这样的类型.对于编译器而言,int

【C#】可空类型(Nullable)

C# 可空类型(Nullable) C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值. 例如,Nullable< Int32 >,读作"可空的 Int32",可以被赋值为 -2,147,483,648 到 2,147,483,647 之间的任意值,也可以被赋值为 null 值.类似的,Nullable< bool > 变量可以被赋值为 true 或 false 或 null.

C#可空类型 T?

可空类型概述 可空类型具有以下特性: 可空类型表示可被赋值为 null 值的值类型变量.无法创建基于引用类型的可空类型.(引用类型已支持 null 值.). 语法 T? 是 System.Nullable<T> 的简写,此处的 T 为值类型.这两种形式可以互换. 为可空类型赋值与为一般值类型赋值的方法相同,如 int? x = 10; 或 double? d = 4.108;. 如果基础类型的值为 null,请使用 System.Nullable.GetValueOrDefault 属性返回该

可空类型(Nullable)

可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值 语法: < data_type> ? <variable_name> = null;   using System; namespace CodeReview { class Program { /// <summary> /// C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值 ///例如,Nullable<

Unity使用可空类型(Nullable Types)

译林军 范春彦|2014-04-09 09:46|5407次浏览|Unity(375)0 你怎么确定一个Vector3,int,或float变量是否被分配了一个值?一个方便的方式就是使用可空类型! 有时变量携带重要信息,但只有在特定的游戏事件发生时触发.例如:一个角色在你的游戏可能闲置,直到他被告知去一个指定的目的地. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class Character : MonoBehaviour {     Ve

使用C#的新特性:可空类型

随着C#语言最新标准的出炉,现在它也提供了对可空类型的支持.这个小变化将会在处理那些包括可选项的数据库记录时非常有用.当然在其他地方,它也是非常有用的. 简单说来,可空数据类型就是包含了所定义的数据类型或者值的空(null)的类型.C#的ECMA-334标准提供了对所有C#值类型的可空版本的描述. 定义可空类型 定义可空类型和非可空类型基本类似,不同的是采用了?来表示.如定义一个整型,你可以使用简单的语句: 为了使得myInt能够存储一个空值,你可以这样声明它: 你可以看到,这两个变量看上去好像

53. C# -- 可空类型(Nullable)

C# 可空类型(Nullable) 理论: C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值. 例如,Nullable< Int32 >,读作"可空的 Int32",可以被赋值为 -2,147,483,648 到 2,147,483,647 之间的任意值,也可以被赋值为 null 值. Nullable< bool > 变量可以被赋值为 true 或 false 或 null