首页 > 代码库 > 小知识(一)

小知识(一)

var:

  1. 初始化必须有赋值,var i;(错的)。
  2. var类型的对象运行过程中不允许再更改类型。(如:var i=1; i="hello!" 会出错)
  3. var只声明局部变量。

dynamic:

  1. 初始化时可以不赋值。
  2. dynamic类型的对象运行过程中可以给该类型。(如:dynamic i=1; i="hello!" 不出错)
  3. 可声明为全局变量。

VAR和DYNAMIC:一般当不确定变量类型时使用。

decimal:

    高精度小数,范围:1.0*10^-28到7.9*10^28,精度28位。一般用于表示money。float/double精度7/15位,用这float/double两个类型表示货币时它会帮你"抹零"。

    decimal默认值:0.0M

    float默认值:0.0F

    double默认值:0.0D

char:

    char字符型赋值有3中

  1. char c=‘d‘;
  2. char c=‘\x0068‘; 十六进制
  3. char c=‘\u0068‘; Unicode表示

char c=(char)68; 整形转换char。

默认值:‘\x0000‘

八进制和十六进制:

    C#中整形只用10进制表示,用8进制格式说明符"o"或"O"和16进制格式说明符是"x"或"X"编译会出错,(如:int i = o73;出错)。

    当需要输出8进制或者16进制时用i.ToString("x")即可。

    显示2进制WriteLine(Convert.ToString(231,2));

    显示8进制WriteLine(Convert.ToString(231,8)) ;

显示16进制WriteLine(Convert.ToString(231,16));

显示16进制WriteLine(i.ToString("x"));显示小写。

显示16进制WriteLine(i.ToString("X"));显示大写。

PadLeft和PadRight

    输出字符串的左边或者右边填充空格实现右对齐或者左对齐。

    ToString().PadLeft(8); 输出字符串长度为8,左边补空格。

Parse:

    parse解析,将数字字符串表示形式等效转换为数字。

    如:int.parse(string); double.parse(string); decimal.parse(string)等等。

    var和dycimal没有parse方法。

    注意:当16进制数字的字符串转换为int时用Parse(string,System.Globalization.NumberStyle)方法,第二个枚举参数选HexNumber即可。

    那2进制字符串和8进制字符串怎么解析成int呢?目前还不知道呢……哪位大师说一下???

Encoding:

    字符串和字节数组之间的转换。System.Text.Encoding类

    byte[] ← GetBytes(string)方法,将字符串转换为字节数组。

    string ← GetString(byte[])方法,将字节数组转换为字符串。

    Encoding属性:

        Encoding.Default 获取系统的当前ANSI代码页的编码

        Encoding.UTF7获取UTF7编码格式

        Encoding.UTF8获取UTF8编码格式

        Encoding.ASCII获取7位ASCII字符集的编码

        Encoding.Unicode获取特定顺序的Unicode格式的编码

    byte[] b=System.Text.Encoding.Unicode.GetBytes(s);

enum枚举:

    用户自定义数据类型。enum枚举的值从1开始,除了自定义。用逗号","隔开,可赋值整形值。

    字符串转换特定枚举:

    object ← Enum.parse(type enumType,string value);

    如:color col=(color)Enum.parse(typeof(color),"white");

    注意:如果字符串跟枚举不对应,会出错。

    enum e

    {

    }

struct结构:

    用户自定义数据类型,结构类型。结构可包含构造函数、常量、字段、方法、属性、索引器、运算符。

    结构是值类型,在堆栈(stack)上分配地址

    结构和类都可以继承接口。

    结构不能被集成,类可以。

    结构没有析构函数,类有。

    struct s

    {

    }

 

参考C#编程实战宝典。清华大学出版社,付强 丁宁 等编著。第三章。

小知识(一)