强弱类型是C#语言中经常被提起的一个话题,也是考官经常考察的内容之一。
若类型语言,比如C语言,允许将一块内存看作多种类型,比较常见的是整形变量与字符变量的相加;而强类型语言在没有强制转换之前,是不允许两种不同类型的变量进行相互操作的,它总是强制类型定义。
强弱类型是指类型检查的严格程度,语言有无类型,若类型和强类型3种。无类型:不检查并且不区分指令和数据;弱类型:检查很弱,仅仅能够严格地区分指令和数据;强类型:则严格地检查数据类型。例如,C语言和JavaScript属于若类型语言,而C++和C#则是强类型语言。
一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。java、.NET、python、C++等都是强制类型定义的。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。 例如你有一个整数,如果不显式地进行转换,你不能将其视为一个字符串。 与其相对应的是弱类型语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。