• C#各种数据类型转换


    在在做一些互操作的时候往往需要一些类型的相互转换,比如用c#访问win32api的时候往往需要向api中传入DWORD参数 即:uint参数这些数值所表示的数据在实际的应用中可能需要以字符的形式显示,但是c#对api的关系无法跟c++相比,所以在c#中进行一些类型数据的转换十分必要了,
    下面将用到的一些简单的转换操作贴上来,方便记忆

    uint--->byte[]

    byte[] bpara =System.BitConverter.GetBytes(uint upara);

    byte[]--->uint

    uint upara= System.BitConverter.ToUint32(bpara);

    byte--->char

    system.convert.tochar(bpara);

    char--->byte

    system.convert.tobyte(cpara);

    byte[]--->char[]

    (1)char[] cpara= System.Text.Encoding.Default.GetChars(bpara);(1)

    (2)char[] cpara=new char[bpara.length];

    for(int i=0;i <bpara.length;i ++){char[i]=system.convert.tochar(bpara[i]);}

    (3)char[] cpara= new ASCIIEncoding().GetChars(bpara);

    char[]--->byte[]

    (1)byte[] bpara= System.Text.Encoding.Default.GetBytes(cpara);

    (2) byte[] bpara= new ASCIIEncoding().GetBytes(cpara);

    char[]--->string

    String spara=new String(cpara);

    string---char[]

    char[] cpara=spara.ToCharArray()

    uint---->char[]

    (1)uint-->byte[];

    (2)byte[]-->char[];

    uint--->string

    (1)uint-->byte[];

    (2)byte[]-->char[];

    (3)char[]-->string;

    byte[]--->string

    (1).byte[]-->char[];

    (2).char[]-->string;

    (3) new ASCIIEncoding().GetString(bprar);

    char[]--->uint

    (1).char[]-->byte[];

    (2).byte[]-->uint;

    string--->byte[]

    bpara= System.Text.Encoding.Default.GetBytes(sPara)

    string--->uint

    (1)string-->byte[];

    (2)byte[]-->uint;

    注意在跟api用uint进行字符交互的时候,一定要注意字符顺序,涉及到api中高低位数据的问题,即获取到api中DOWRD的数据在c#表示中往往是反序,所以在c#中获取或者传递字符串时一定要注意反序处理后才能转换成uint给api使用,有机会好好总结一下贴上来。

  • 相关阅读:
    事件
    js定时器
    js动画
    oop面向对象编程
    26 正则表达式
    25 异常处理
    javascript操作select的一些基本方法总结
    一个select 列子的思考
    jquery中 toggleClass方法的一种用法
    模拟TAB 采用 attachEvent 遇到的IE兼容问题
  • 原文地址:https://www.cnblogs.com/weisteve/p/2049622.html
Copyright © 2020-2023  润新知