• c#数据类型的转化


    转换方法:

    1.(int)变量名[强制类型转换]

        该转换方式主要用于数字类型之间的转换,从int类型向long,float,double,decimal 类型转换可以使用隐式转换,但从long型到int 就需要使用显示转换,即使用该类型的转换方式否则产生编译错误。

    2.int.Parse(string 变量名)

      该方式是将数字内容的字符串转换为int类型,如果字符串的内容为Null ,则抛出ArgumentNullException异常;如果字符串内容不是数字,则抛出FormatException异常。

    3.int.TryParse(string s, out int result)

      该方式也是将数字内容的字符串转换为int类型,但是该方式有比int.Parse 优越的地方,就是它不会出现异常,最后一个参数result是输出值,如果转换成功则输出相应的值,转换失败则输出0。  

    4. Convert.ToInt32

      该方式不仅可以将字符串类型转换为int,还可以将其他的类型转换为int。变量若为object或string类型,当其值为Nul时,会传回0,不会造成程序错误,但是若此string类型的值为string.Empty,转换成int时,程序仍会出错。

    分支语句:

    if...else...分支

    if后面的括号里面需要一个bool值或者一个逻辑表达式,如果后面只有一行要执行的语句,花括号可以省略不写。如果有多个条件判断,可以在else后面加上if判断即可。

    switch...case...分支

    switch 后面的 (n) 可以是表达式,也可以(并通常)是变量。然后表达式中的值会与 case 中的数字作比较,如果与某个 case 相匹配,那么其后的代码就会被执行。break 的作用是防止代码自动执行到下一行。

    var num = 100;      //定义变量num,并赋值
    switch (num) {
        case 1: {
            alert("1");
        }; break;
        case 50: {
            alert("50");
        }; break;
        case 100: {
            alert("100");
        }; break;
        default: {
            alert("默认的消息框!");
        }
    }

    三元运算符:

    如名字表示的三元运算符需要三个操作数。

    语法是 条件 ? 结果1 : 结果2;. 这里你把条件写在问号(?)的前面后面跟着用冒号(:)分隔的结果1和结果2。满足条件时结果1否则结果2。

    值类型和引用类型的区别:

    C#里面把数据类型分为两大类,分别为值类型和引用类型,值类型包括基本数据类型(int ,double等),结构和枚举,,,引用类型包括接口,数组,Object类型,类,委托,字符串,null类型等,那这两大类有什么区别呢?

    1.值类型:就是一个包含实际数据的量。即当定义一个值类型的变量时,C#会根据它所声明的类型,以栈方式分配一块大小相适应的存储区域给这个变量,随后对这个变量的读或写操作就直接在这块内存区域进行.

    2.引用类型:一个引用类型的变量不存储它们所代表的实际数据,而是存储实际数据的引用。
    引用类型分两步创建:首先在栈上创建一个引用变量,然后在堆上创建对象本身,再把这个内存的句柄(也是内存的首地址)赋给引用变量。

    总结:

    1.   值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对象的地址。

    2.    值类型存取速度快,引用类型存取速度慢。

    3.    值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或引用

    4.    值类型继承自System.ValueType,引用类型继承自System.Object

    5.    栈的内存分配是自动释放;而堆在.NET中会有GC(垃圾回收)来释放

  • 相关阅读:
    Django模板
    创建我的第一个django项目
    python django环境配置与安装
    python第九期学习笔记(装饰器进阶)
    python第九期学习笔记(十二)(线程)
    python第九期学习笔记(装饰器)
    python第九期学习笔记(闭包)
    python第九期学习笔记(十二)(面向对象)
    python第九期学习笔记(十一)(面向对象)
    python第九期学习笔记(十)(模块)
  • 原文地址:https://www.cnblogs.com/niez1/p/6957243.html
Copyright © 2020-2023  润新知