zoukankan      html  css  js  c++  java
  • C#学习笔记(隐式和显式转化、枚举类型、结构类型、数组类型和字符串)

    1 类型转换

    1.1 隐式转换:从类型A到类型B的转换可以在所有情况下进行,执行转换的规则非常简单,可以让编译器执行转换。

    ushort destinationVar;

    char sourceVar = 'a';

    destinationVar = sourceVar;

    Console.WirteLine("soueceVar Val:{0}",sourceVar);

    Console.wirteLine("destination Val:{0}",destinationVar);

    输出的结果:

    sourceVar Val:a

    destination Val:97

    即时两个变量存储的是相同的信息,但是不同的类型解释他们时,方式也是不同的。

    编译器允许隐式转换的数值转换如下表:

    类型 可以安全的转换为
    byte short,ushort,int,uint,long,ulong,double,decimal
    sbyte short,int,long,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
    float double
    char ushort,int,uint,long,ulong,float,double,decimal

    1.2 显式转换:从类型A到类型B的转换只能在某些情况下进行,转换的规则比较复杂,应进行某种类型的处理。

    byte destinationVar;

    short sourceVar = 7;

    destinationVar = (byte)sourceVar;

    1.2.1 使用Convert命令进行显式转换

    命令 结果
    Convert.ToBoolean(val) val转换为bool
    Convert.ToByte(val) val转换为byte
    Convert.ToChar(val) val转换为char
    Convert.ToDecimal(val) val转换为decimal
    Convert.ToDouble(val) val转换为double
    Convert.ToInt16(val) val转换为short
    Convert.ToInt32(val) val转换为int
    Convert.ToInt64(val) val转换为long
    Convert.ToSByte(val) val转换为sbyte
    Convert.ToSingle(val) val转换为float
    Convert.ToString(val) val转换为string
    Convert.ToUInt16(val) val转换为ushort
    Convert.ToUInt32(val) val转换为uint
    Convert.ToUInt64(val) val转换为ulong

    2 枚举类型

    关键字enmu

    enmu<typeName>

    {

      <value1>,

      <value2>,

      <value3>,

      ...

      <valueN>

    }

    接着声明这个新类型

    <typeName><varName>;

    并赋值:

    <varName>=<typeName><value>;

    注:默认情况下枚举中的第一个变量赋值为1,后面的值自动加1

    3 结构类型

    关键字struct

    struct <typeName>

    {

      <memberDeclarations>

    }

    <menberDeclarations>部分包含变量的声明(称为结构体的数据成员),其格式与往常一样。每个成员的声明都采用如下的格式:

    <accessibility><type><name>;

    要让调用结构的代码访问该结构的数据成员,可以对<accessibility>使用关键字public,例如:

    struct route

    {

      public orientation direction;

      public double distance;

    }

    定义了结构体类型之后,就可以定义新类型的变量,来使用该结构:

    route myRoute;

    然后通过句点字符来访问这个组合变量中数据成员:

    myRoute.direction = orientation.north;

    myRoute.distance = 10;

    4 数组

    前面的所有类型都有一个共同点:他们都只能存储一个值(结构中存储一组值)。有时,需要存储许多数据,这样就会带来不便。有时需要同时存储几个类型相同的值,而不是每一个值使用不同的变量。

    4.1 声明数组:

    <baseType>[]<name>;

    例如:int[] myIntArray;

    myIntArray[10] = 5;

    或者:int[] myIntArray = new int[]arraySize;

    或者:int[] myIntArray = new int[5]{1,2,3,4,5};数组大小必须和元素个数匹配

    4.2 foreach循环

    foreach循环可以使用一种简单的语法来定位数组中的每一个元素:
    foreach(<baseType>(name) in <array>)

    {

      //can usr <name> for each element

    }

    4.3 多维数组

    二维数组声明

    <baseType>[,] <name>;

    多维数组声明

    <baseType>[,,,] <name>;

    5 字符串的处理

    string类型变量可以看成是char变量的只读数组。这样就可以使用下面的语法访问每一个字符:

    string myString = "A string";

    char myChar = myString[1];

    在foreach循环中使用字符串:

    foreach(char character in mystring)

    {

      Console.WirteLine("{0}",character);

    }

  • 相关阅读:
    2019年8月22日 星期四(杂谈)
    文件读写
    log4j
    java 读写 xlsx
    mongodb的增删改查
    mongodb安装与简单配置
    mondb的特性
    mongodb 的简单应用
    linux 学习1
    linux 安装MySql
  • 原文地址:https://www.cnblogs.com/DannyShi/p/4463163.html
Copyright © 2011-2022 走看看