强类型和弱类型

强类型 对应弱类型
弱类型就是没指明类型  赋值的时候才决定类型
例子:
var x;
你可以给x赋予任何对象。

不过C#也不是“绝对”的强类型语言,因为它也有弱类型,那就是Object。我们知道Object是所有类型的最终基类,任何类型的对象都可以使用Object来引用

强类型就是 声明的时候 必须制定其类型 这样保证了 类型安全
例如 string x; 
你只能赋予x string 类型 或者其子类  否则必须给予显式转型

好处:

能够享受代码提示功能 
能够获得重构工具的支持 
能够在编译期发现更多错误

 var a = 1;
        string b = "1";
        object c = 1;
        var sum = a + b;
        var sum2 = a + 2;

        object sum3 = c + b;
        Label1.Text = sum +"   "+ sum2;
        Label2.Text = sum3.ToString() ;

  输出结果为:11 和1

时间: 2024-10-07 06:13:14

强类型和弱类型的相关文章

强类型 和 弱类型

完全的面向对象要求对象是强类型的.强类型是在编译的时候就确定类型的数据,在执行时类型不能更改,而弱类型在执行的时候才会确定类型. 强类型安全,因为它事先已经确定好了,而且效率高.一般用于编译型编程语言,如 C++, Java, C#, Pascal 等. 弱类型相比而言不安全,在运行的时候容易出现错误,但它灵活,多用于解释型编程语言,如 Javascript, VB 等. 弱类型的轻量化是以牺牲开发的方便性和效率为基础的.它将一部分机器能完成的事情移到程序员来完成.例如开发同样一个功能,如果用

[转]c# 泛类型(泛型) 以及强类型与弱类型的 理解及优化

[泛型的概念](1)没有泛型的时候,所有的对象都是以object为基础,如果要使用时必须进行强制类型转换,如果对于值类型,则会导致不断拆箱装箱的过程,对系统消耗很大.(2)使用泛型时不需要通过object类进行装箱拆箱,使用的时候都会是确定的类型.(3)泛型的概念一开始是由集合引入,因为集合中的类型都是基于object类.可以在集合中使用泛型类.(4)泛型不仅仅用于集合,还可以用于委托.接口和方法.泛型的优点:高性能ArrayList list1 = new ArrayList();list1.

强类型和弱类型,静态类型和动态类型语言如何区分

强类型和弱类型 如果一门语言很少隐式转换类型,说明他是强类型语言.如果经常这么做,说明他是弱类型语言.java, c++和python是强类型语言.PHP,JavaScript和Perl是弱类型语言 静态类型和动态类型 在编译时检查类型的语言是静态类型语言,在运行时检查类型的语言是动态语言.静态类型需要声明类型.Fortran和Lisp是最早的两门语言.他们分别是静态类型语言和动态类型语言. 静态类型使得一些工具编译器和ide便于分析代码,找出错误和提供其他服务(优化,重构,等等).动态类型便于

什么是编程语言的强类型,弱类型

给你来个例子把 弱类型语言vbs: a=1 b=a+"1"+"a" //结果是11a,这里 a 成了字符串 c=a+1 //结果是2 ,这里a则是数字型 强类型语言:c# int a=2 string b=a.ToString()+"1"+"a" int c=a+1 看到了吗?区分大小写,需要实现申明类型外,一个重要的区别是,弱类型的语言的东西没有明显的类型,他能随着环境的不同,自动变换类型 而强类型则没这样的规定,不同类型间

强类型、弱类型、动态类型、静态类型语言

收集了一些关于编程语言分类的文章: 一. 作者:rainoftime链接:https://www.zhihu.com/question/19918532/answer/21647195来源:知乎 类型系统的一些概念,众说纷纭,使用上也比较乱.有些东西,甚至不好严格定义.以下算学术界的一种相对"严格"的说法. 1. 先定义一些基础概念 Program Errors trapped errors.导致程序终止执行,如除0,Java中数组越界访问 untrapped errors. 出错后继

强类型,弱类型和推断类型

一.强类型 在编译时就知道的类型.如: int i=1; 能点出来的也是强类型. 二.弱类型 在运行时才知道的类型. dynamic dynamic= new ExpandoObject();            dynamic.Name = "张三"; 通过索引器读出来的是弱类型.如:dr["id"]; 三.推断类型 var s="ss"; 反编译后发现s是string类型的.说明,在编译期间已经知道了类型.所以,var类型是强类型. var

MVC强类型和弱类型的区别

1 强类型的处理 首先必须要有一个对象的实体类,UserINfo就是一个实体类,如下: public class UserInfo() { public  int Id{set;get;} public string UserName{set;get;} public int UserAge{setl;get;} } 调用这个实体类的Action如下: public ActionResult QiangLeiXing() { UserInfo userinfo=new UserInfo(); u

动态语言 静态语言 强类型语言 弱类型语言

一 .静态语言的优势到底在哪? 引用 是像Java或者C#这样强类型的准静态语言在实现复杂的业务逻辑.开发大型商业系统.以及那些生命周期很长的应用中也有着非常强的优势 这是一个存在于大家心里常识了.我承认我自己在潜意识里面也觉得静态强类型语言适合开发复杂,大型系统.而弱类型脚本语言不适合开发太复杂,太大型的项目.但是在参与这个讨论过程中,我突然开始置疑这个观点,事实究竟是不是这样的呢? 先定义一下标准: 静态类型语言是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须

强类型,弱类型,动态类型,静态类型

"C and C++ are considered weakly typed since, due to type-casting, one can interpret a field of a structure that was an integer as a pointer." 我当前使用的开发语言为C/C++,为弱类型语言,主要因为: 1. 一些编程语言(例如C/C++)将指针暴露为数字值,并允许用户对它们执行算术运算.这些语言有时被称为"弱类型",因为指针