首页 > 编程语言 >C#里的强类型与弱类型

C#里的强类型与弱类型

时间:2023-09-05 21:33:47浏览次数:40  
标签:object 变量 C# Object 泛型 类型

强类型和弱类型的变量都有两个属性:类型和值。

强类型的变量类型是不能改变的,弱类型的变量类型是随需改变的,这是强弱的真正含义。

我们在编写c#代码时,变量类型是明确的,不可更改的,如string就是string,int就是int,这就是强类型,好处:

1.能够享受代码提示功能

2.能够获得重构工具的支持 

3.能够在编译期发现更多错误 

弱类型:Object,在C#中Object是所有类型的基类,任何对象都可以使用Object来引用。可是一旦转化成Object的变量之后,代码提示便消失了;即使我们“明确”对象的确切类型,也必须通过Cast才能使用——更何况它形成了一种被“滥用”或“误用”的机会。例如一段错误代码可能会传入一个不符合约定类型的对象,那么就会造成错误。更严重的是,这样的错误可能只要在 “运行时”才能被发现,编译器对此无能为力。

 

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

泛型的优点:高性能、类型安全、代码的重用与扩展

标签:object,变量,C#,Object,泛型,类型
From: https://www.cnblogs.com/thomasdebrick/p/17680879.html

相关文章

  • 这是我在51CTO博客的第一篇博文
    1.SpringBoot概述1.1SpringBoot概念SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。2014年4月,SpringBoot1......
  • 10分钟从源码级别搞懂AQS(AbstractQueuedSynchronizer)
    10分钟从源码级别搞懂AQS(AbstractQueuedSynchronizer)前言上篇文章15000字、6个代码案例、5个原理图让你彻底搞懂Synchronized有说到synchronized由objectmonitor实现的objectmonitor中由cxq栈和entrylist来实现阻塞队列,waitset实现等待队列,从而实现synchronized的等待/通知......
  • C++中虚继承时的构造函数
    在虚继承中,虚基类是由最终的派生类初始化的,换句话说,最终派生类的构造函数必须要调用虚基类的构造函数。对最终的派生类来说,虚基类是间接基类,而不是直接基类。这跟普通继承不同,在普通继承中,派生类构造函数中只能调用直接基类的构造函数,不能调用间接基类的。下面我们以菱形继承为例来......
  • C进阶(指针)
    一维数组传参的几种形式(5种)voidtest(intarr[])//{}voidtest(intarr[10])//{}voidtest(int*arr)//{}voidtest2(int*arr[20])//{}voidtest2(int**arr)//{}intmain(){intarr[10]={0};int*arr2[20]={0};test(arr);test2(arr2);}二维数组传参的几......
  • obce_8
    [email protected]新建一个oracle/mysql租户,租户规格自定(说明:本实验与租户模式无关),本文以oracle租户示例:新建资源规格:createresourceunitu1_oramax_cpu=1,min_cpu=1,max_memory='2G',min_memory='2G',max_iops=128,max_disk_size='10G',max......
  • Hugging News #0904: 登陆 AWS Marketplace
    每一周,我们的同事都会向社区的成员们发布一些关于HuggingFace相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「HuggingNews」。本期HuggingNews有哪些有趣的消息,快来看看吧!......
  • obce_7
    OCP系统参数ocp.site.url地址改为分配OCP地址登录ocp公网地址http://106.14.176.47:8080/loginadmin/aaAA11__http://139.224.196.253:8080/login系统参数:搜索ocp.site.url修改为http://172.16.1.40:8080(一定要私网ip)nOCP服务器与两台observer做好NTP......
  • PCL 点云基础
    PCL点云基础: 一、概念1、点云的结构公共字段    PCL包含一个重要的数据结构,被设计成一个模板类,把点的类型当做模板类的参数。    header:pcl::PCLHeader记录了点云的获取时间    points:std::vector<PointT,...>储存所有点的容器    width:指定......
  • 【CSS】画自适应矩形
     <html><style>.box{/*1.padding-top根据父容器进行百分比计算数值的*//*width:50%;background:blue;padding-top:50%;*//*2.aspect-ratio:规定了纵横比,这个纵横比可以用来计算自动尺寸以及......
  • [Javascript] Write Observable
    functionObservable(forEach){this._forEach=forEach;}Observable.prototype={forEach:function(onNext,onError,onCompleted){if(typeofonNext==="function"){returnthis._forEach({onNext,onError:onEr......