类型转换

Gartner DSG数据安全治理 架构及解读 目录背景:架构图: 解释:英文解释:(自上而下)平衡业务与风险、威胁、合规之间的关系(5个维度之间的平衡)优先处理数据集制定安全策略实施安全工具策略配置同步从上到下,从需求调研开始实施数据安全治理。千万不要跨过数据摸底、治理优先级分析、制定治理整体策略,而直接从技术工具开始对数据安全进行治理。 先明确选择需要治理的对象,优先选择重要数据进行数据安全治理工作。可以通过数据梳理、分类分级等手段,完成数据资产盘点和筛选,在纷杂的数据中理清头绪。 阅读详情
知识点
  1. 值类型。   
    1. 值类型是在栈中分配内存,在声明时初始化才能使用,不能为null。       
    2. 值类型超出作用范围系统自动释放内存。       
    3. 主要由两类组成:结构,枚举(enum),结构分为以下几类:
      1. 整型(Sbyte、Byte、Char、Short、Ushort、Int、Uint、Long、Ulong)           
      2. 浮点型(Float、Double)           
      3. decimal           
      4. bool           
      5. 用户定义的结构(struct)
  2. 引用类型。   
    1. 引用类型在堆中分配内存,初始化时默认为null。       
    2. 引用类型是通过垃圾回收机制进行回收。       
    3. 包括类、接口、委托、数组以及内置引用类型object与string。

 

 

(1) 隐式转换:一般是低类型向高类型转化,能够保证值不发生变化。
        隐式数值转换:
         从 sbyte 到 short、int、long、float、double 或 decimal。
         从 byte 到 short、ushort、int、uint、long、ulong、float double 或 decimal。
         从 short 到 int、long、float、double 或 decimal。
         从 ushort 到 int、uint、long、ulong、float、double 或 decimal。
         从 int 到 long、float、double 或 decimal。
         从 uint 到 long、ulong、float、double 或 decimal。
         从 long 到 float、double 或 decimal。
         从 ulong 到 float、double 或 decimal。
         从 char 到 ushort、int、uint、long、ulong、float、double 或 decimal。
         从 float 到 double。
   不存在向 char 类型的隐式转换,因此其它整型的值不会自动转换为 char 类型。
   浮点型不能隐式地转化为decimal型
   隐式枚举转换
  
           隐式枚举转换允许将十进制整数 0 转换为任何枚举类型。

隐式引用转换
           派生类向基类转换
           隐式引用转换是指一类引用类型之间的转换,这种转换总是可以成功,因此不需要在运行时进行任何检查。

   装箱转换
           装箱转换允许将值类型隐式转换为引用类型。

(2)显示转换:也称强制类型转换。不能保证数据的正确性。
      (type)(表达式)

(3)用户自定义转换
      所有的用户自定义转换都是静态的,要使用static关键字
      用户自定义转换分显示和隐示,它们用implicit(隐式转换)或 explicit(显示转换)关键字声明。
      static 访问修辞符 转换修辞符 operator 转换类型(参数)

示例:

using System;
struct Number
{
       private int value;
       public Number(int value)
       {
              this.value = value;
       }
       //用户自定义整型到Number型的隐式转换
       static public implicit operator Number(int value)
       {
              return new Number(value);
       }
       // 用户自定义从Number型到整型的显示转换
       static public explicit operator int(Number n)
       {
              return n.value;
       }
       //用户自定义从Number类型到string类型的隐式转换
       static public implicit operator string(Number n)
       {
              return n.ToString();
       }
}

class Test
{
      static public void Main()
       {
              Number n;
              n= 10;    
              Console.WriteLine((int)n);
              //隐式转换到string
              Console.WriteLine(n);  
      }
}

使用System.Convert类
       将一个基本数据类型转换为另一个基本数据类型。

使用Parse方法
大部份预定义值类型都有这个静态方法,用来将相应的文本转化为相应的值类型。

装箱和取消装箱


 

  1. 装箱 是值类型到 object 类型或到此值类型所实现的任何接口类型的隐式转换。对值类型装箱会在堆中分配一个对象实例,并将该值复制到新的对象中。    

    •   
  2. 拆箱(取消装箱)是从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换。取消装箱操作包括:   
  3. 检查对象实例,确保它是给定值类型的一个装箱值。(拆箱后没有转成原类型,编译时不会出错,但运行会出错,所以一定要确保这一点。用GetType().ToString()判断时一定要使用类型全称,如:System.String 而不要用String。)

  4. 将该值从实例复制到值类型变量中。

 

       装箱和取消装箱使值类型能够与 object 类型相互转换。

       装箱转换允许将“值类型”隐式转换为“引用类型”。将“值类型”的值装箱的操作包括:分配一个对象实例并将“值类型”的值复制到该实例中。

示例:

       此例将整数变量 i 通过装箱转换为对象 o。此例显示对象保留了内容的原始副本,即 123。

using System;
class TestBoxing
{
   public static void Main()
   {
      int i = 123;
      object o = i; // 隐式的装箱
      i = 456;       // 改变变量i的值
      Console.WriteLine("The value-type value = {0}", i);       //456
Console.WriteLine("The object-type value = {0}", o); //123 是i的复制值
   }
}
取消装箱转换:取消装箱转换允许将引用类型显式转换为值类型。

    取消装箱操作包括以下两个步骤:首先检查该对象实例是否是某个给定的值类型的装了箱的值,然后将值从实例中复制出来。
示例:

    下面的示例阐释无效取消装箱的情况,即错误的取消装箱如何导致 InvalidCastException。通过使用 try 和 catch,发生错误时会显示错误信息。
using System;
public class UnboxingTest
{
   public static void Main()
   {
      int intI = 123;
      object o = intI; //装箱
      try
      {
         int intJ = (short) o; //取消装箱无效,short不是装了箱的值类型. 检查该对象实例是否是某个给定的值类型的装了箱的值
         Console.WriteLine("Unboxing OK.");
      }
      catch (InvalidCastException e)
      {
         Console.WriteLine("{0} Error: Incorrect unboxing.",e);
      }
   }
}

 

其它转换用运算符
as
as 运算符用于执行引用类型的显式类型转换。 如果要转换的类型与指定类型兼容,转换就会成功;如果类型不兼容,则返回null。
       表达式as 类型
as 运算符类似于类型转换,所不同的是,当转换失败时,as 运算符将返回null,而不是引发异常。
示例:
       object o1=”SomeString”;
       object o2=5;
       string s1=o1 as string; //类型兼容 s1=”SomeString”
       string s2=o2 as string; //s2=null

is
is 运算符用于检查对象的类型是否与给定类型兼容(对象是该类型,或是派生于该类型)。
       表达式 is 类型
示例:
       int i=10;
       if ( i is object) //true
       {}

sizeof
sizeof 运算符用于获得值类型的大小(以字节为单位)。
       sizeof(type)
sizeof 运算符仅适用于值类型,而不适用于引用类型。
sizeof 运算符仅可用于 unsafe 模式。
示例:
       unsafe
       {
              Console.WriteLine(“{0}”,sizeof(int));
       }

本文摘自:http://hi.baidu.com/senlinmu110/blog/item/b59f4f09c65b6ed963d986fa.html

 

全局–局部傅里叶神经算子(GL-FNO):原理、严格推导与 PINN 混合策略 本文提出了一种全局-局部傅里叶神经算子(GL-FNO)及其与物理信息神经网络(PINN)的结合方法。主要内容包括: 架构设计:GL-FNO包含两个分支 - 全局分支处理低频结构,使用下采样输入;局部分支处理高频细节,使用全分辨率输入。两分支通过自适应门控机制融合。 理论分析:证明了GL-FNO在"低频全局+高频局部"任务上的优势,给出了误差分解和复杂度分析,并推导了与PINN结合时的渐进一致性条件。 实现方法:采用频谱微分计算物理残差,推导了完整的训练流程,包括数据损失与物理损失的联合优 阅读详情

相关推荐

VoLTE吞字断续优化方案

网络侧通过各节点探针的数据采集,能够进行RTP和RTCP包的分析,确定各节点的上行或下行丢包情况。1.基于测试语音分析,每2秒中大约8个字,每个字约10个RTP语音包。通话过程中,语音有短暂停顿,收音段听语音中会出现“吞字/断续现象”2.连续丢3~5个RTP以上就可能会出现吞字断续的感觉。下行评价的丢包问题,很难有效指导定界定位分析,无从下手。2.部分终端可能存在RTCP不反馈,导致无法获取丢包。1.语音包为UDP包,无反馈,终端无法判定是否丢包。终端可依据自身的调度反馈或弃包进行上行丢包判决。

m0_73503557的博客 1512

php数据类型介绍与特性

php有九种原始数据类型如下: 标量类型:boolean,integer,float,string 复合类型:array,object,callable 特殊类型:resource,null(无类型) boolean(布尔值) - 用TRUE/FALSE(不分大小写)指定布尔值即可,运算符返回的bool会被传递给控制流程 - 使用“==” 来判断布尔值变量真假是多余的 - 除多数情况使用其他值来当...

张小年的博客 300

国产HDMI2.0芯片GSV2011怎么选?手把手教你用它设计音视频采集卡(附FPGA/海思对接指南)

本文详细解析国产HDMI2.0芯片GSV2011在音视频采集卡设计中的应用,涵盖芯片选型、硬件设计要点及与FPGA/海思平台的对接指南。GSV2011凭借4K@60Hz支持、音频提取嵌入功能和高集成度,成为音视频设备的核心选择,助力开发者快速实现高性能采集卡设计。

weixin_30181209的博客 332

说说装箱和拆箱

    最近一段时间在公司得闲,学习了一下.NET的相关知识(第一次接触,和工作也没啥关系),随手在公司写了几张贴,当作读书笔记,今晚一看,居然有不少回贴,兴冲冲一打量,嘿,居然全是骂偶无知的。说实话,俺倒不担心自已无知,只怕自已不知道自已无知。所以,被提提醒也不错,我会在学习中去提高自已。想想,还是把最后一篇学习笔记贴上。   装箱/拆箱的对于刚接触.NET的我来说很陌生。    .NET中,数

石头记 5036

MacOS下微信小程序源码提取与逆向实战:从找到.wxapkg到完整还原

本文详细介绍了在MacOS系统下进行微信小程序源码提取与逆向分析的完整实战流程。从定位沙盒机制中的.wxapkg缓存文件,到搭建Node.js环境与配置wxappUnpacker工具链,再到执行核心反编译命令并处理分包等复杂情况,提供了清晰的操作步骤。文章还汇总了Node版本、依赖缺失、文件乱码等常见问题的解决方案,旨在帮助开发者、安全研究人员高效完成小程序安全审计与学习。

weixin_29246195的博客 1598

海思MPP平台千兆以太网驱动集成与测试指南

千兆以太网(GE)是嵌入式视觉系统中音视频流传输与边缘控制的核心物理接口,其底层驱动需兼顾DMA高效调度、中断实时响应与PHY链路稳定性。在Linux嵌入式环境中,GE驱动通常基于net_device框架实现,并深度耦合于SoC专用媒体处理平台(如海思MPP),通过硬件抽象层(HAL)屏蔽寄存器操作,提供零拷贝、RGMII时序适配、描述符环管理等关键能力。技术价值体现在降低CPU负载、保障1080p@30fps实时推流、支持ONVIF/RTSP协议交互及固件远程升级。典型应用场景包括网络摄像机(IPC)、A

weixin_42599908的博客 89

Java类型转换(自动类型转换+强制类型转换)

一、 自动类型转换(隐式类型转换) 整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。 自动转换从低级到高级。 自动转换有以下规律: 1、小的类型自动转化为大的类型 2、整数类型可以自动转化为浮点类型,可能会产生舍入误差 3、字符可以自动提升为整数 示例代码: 隐式类型转换 int i = 128; double b = i;//128.0 整数类型可以自动转化为浮点类型,可能会产生舍入误差 Float和Double提供了快速的运

weixin_44540414的博客 8209

VS code平台调试AutoLISP程序教程

VS code平台调试AutoLISP程序教程

BearElder的博客 3183

C语言类型转换-自动类型转换、强制类型转换、指针类型转换

数据类型转换就是将数据(变量、数值、表达式的结果等)从一种类型转换为另一种类型。 自动类型转换 自动类型转换就是编译器默默地、隐式地、偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生。 将一种类型的数据赋值给另外一种类型的变量时就会发生自动类型转换,例如: float f = 100; 100 是 int 类型的数据,需要先转换为 float 类型才能赋值给变量 f。再如: int n = f; f 是 float 类型的数据,需要先转换为 int 类型才能赋值给变量 n。 在赋值运算中,

qq_41854911的博客 8151

ximalaya 新xm-sign逆向思路

本文主要介绍目标网站新xm-sign值的逆向思路。仅代表个人理解,如有其他建议可在评论区沟通。声明仅仅记录一下自己的学习方法,不作为其他参考、更不作为商业用途。如有侵犯请联系本人删除。

weixin_66580433的博客 2017

sec_uid

webcast_uid转sec_uid,webcast_uid转uid,webcast_uid转dy号

m0_56967679的博客 4420

Java——类型转换

类型转换分为和。

Stewie Lee的博客 6149

【k8s故障处理篇】calico-node启动失败“Felix is not live: Get “http://localhost:9099/liveness” 解决办法(V1.30.3版本)

【k8s故障处理篇】calico-node启动失败“Felix is not live: Get “http://localhost:9099/liveness” 解决办法(V1.30.3版本)

jks212454的博客 1091

C++ 类型转换

隐式类型转换 1 数值类型转换 2 指针类型转换 显式类型转换 1 explicit关键字 1 强制类型转换 11 static_cast 12 dynamic_cast 13 const_cast 14 reinterpret_cast 参考资料 C++类型转换大体上包括隐式类型转换和显式类型转换。1. 隐式类型转换隐式类型转换是自动执行的,无需显式的操作符。 隐式类型转换发生在很多地方,比如函数

shuzfan的专栏 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C++四种强制类型转换

文章目录1 C++类型转换本质1.1 自动类型转换(隐式)1.2 强制类型转换(显式)1.3 类型转换的本质1.4 类型转换的安全性2 四种类型转换运算符2.1 C语言的强制类型转换与C++的区别3 static_cast4 reinterpret_cast5 const_cast6 dynamic_cast6.1 向上转型(Upcasting)6.2 向下转型(Downcasting) 1 C++类型转换本质 1.1 自动类型转换(隐式) 利用编译器内置的转换规则,或者用户自定义的转换构造函数以及类型转换

u_hcy2000的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【C++】—— C++的类型转换

C++的类型转换详解

m0_56069910的博客 3674

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

自动类型转换与强制类型转换

自动类型转换与强制类型转换的详细解释

Locus的博客 5852

C语言类型转换详解(自动类型转换+强制类型转换)

在 C 语言中,数据类型转换就是将数据(变量、数值、表达式的结果等)从一种类型转换为另一种类型。自动类型转换就是编译器默默地、隐式地、偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生。程序员也可以自己在代码中明确地提出要进行类型转换,这称为强制类型转换。

数据结构和算法教程(C语言版) 1623

自动类型转换

(一)自动类型转换      在java 程序中,不同的基本类型的值经常需要进行相互类型转换,类型转换分为自动类型转换和强制类型转换。布尔类型boolean占有一个字节,由于其本身所代码的特殊含义,boolean类型与其他基本类型不能进行类型的转换(既不能进行自动类型的提升,也不能强制类型转换), 否则,将编译出错。     java的所有数值型变量可以进行相互转换,如果系统支持把某种基本类型...

Alan Zhuang的博客 1万+

java类型转换

java数据类型转换

程序员阿龙的博客 8004

【C++】类型转换

本文系统介绍了C和C++中的类型转换机制。C语言提供隐式转换和强制转换两种方式,但存在类型安全问题。C++在此基础上新增了四种显式转换运算符:static_cast用于安全基本类型转换,reinterpret_cast用于低级别位模式重解释,const_cast处理常量性,dynamic_cast实现运行时安全多态转换。文章还探讨了RTTI机制(typeid和dynamic_cast)在运行时类型识别中的应用,分析了各转换方式的适用场景、风险及实现原理。通过代码示例展示了类型转换的实际应用,强调合理使用转换

2402_82670467的博客 1478

C++——类型转换

标准C++为了加强类型转换的可视性,引入了四种命名的强制类型转换操作符。

qq_63943454的博客 1369

C++强制类型转换

在C++中,新增了四个关键字static_cast、const_cast、reinterpret_cast和dynamic_cast,用于支持C++风格的强制类型转换来替代C风格的强制类型转换,降低使用风险.C++风格的强制类型转换能更清晰的表明它们要干什么,程序员只要看一眼这样的代码,立即能知道强制转换的目的,并且,在多态场景也只能使用C++风格的强制类型转换.C++风格的强制类型转换在多线程及网络编程中经常被用到.的类型转换只是语法上的解释,本质上与C风格的类型转换没什么不同,C语言做不到事情的C。

qq_74224788的博客 1626
上一篇: LINQ查询表达式中使用对象初始化器
下一篇: 数据加密
VS_URL
博客等级 码龄15年 12粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值