c#变量及数据类型全解析

 为什么要使用变量:

计算机使用内存来记忆计算时所使用的数据,所以内存存储数据时:

要先根据数据的需求(即类型)为它申请一块合适的空间,存储数据,采用二进制的方式存储数据(010101··· ···),

而变量就是内存地址的引用,形象的说:可通过内存中房间的别名(就是变量)找到数据存储的位置。

 

如何变量声明:

// 变量类型 变量名 = 数值;
int money = 100;
int money;
money = 100;
// 也可以连续声明
int money1, money2,money3;

 

变量的初始化:

在使用变量之前,必须对变量进行初始化,否则会报错:

c#变量及数据类型全解析_第1张图片

 

变量分类:

(1)类变量:

在类中定义的变量,也叫成员变量,分为:

静态变量和实例变量:

static int x = 90; // 静态变量
int x = 40; // 实例变量

调用方式:

在外部来调用静态变量可以使用类名来调用,实例变量使用创建出来的实例来调用。

在内部可直接调用静态,而在内部调用实例变量时,需要先创建类的实例,然后才能调用:

namespace ConsoleApp2
{
    class Program
    {
        string str = "lxc";
        static string s = "hello";
        static void Main(string[] args) // Main 主入口方法
        {
            Console.WriteLine(s); // 静态变量可直接调用
            Program classIns = new Program();
            Console.WriteLine(classIns.str); // 通过实例来调用类中的实例变量 str
            Console.ReadLine();

        }
    }
}

(2)局部变量:

在类方法中的变量称为局部变量。

 

常量的使用:

定义:不能被改变的量,固定不变的。

分类:

(1)编译时常量 const - 也就是说在编译前必须要定义好(初始化)的常量,不接受动态改变,否则将会报错。

const int a = 1;

c#变量及数据类型全解析_第2张图片

(2)运行时常量 readonly

可以在编译时定义,也可以在运行时定义:

(注意:readonly常量只能在类中定义,不能再Main方法或其他方法中定义!)

(静态只读常量,只能刚开始定义好,或者,在构造函数中去修改常量)

namespace ConsoleApp2
{
    class Program
    {
        static readonly double PI;
        // 在构造函数中 修改PI常量
        Program()
        {
            PI = 3.14;
        }
        static void Main(string[] args) // Main 主入口方法
        {
        }
    }
}

** 静态只读常量如果没有初始化直接使用会出现意外效果,如下:

定义了2个只读常量,输出n1时为0,原因是:只有在运行时常量才能被确定下,程序运行到n2 * 2 时,n2常量还未被定义,所以默认为0,导致最后输出结果为 0。

c#变量及数据类型全解析_第3张图片

 

 

 

c#中预定义的数据类型:

值类型:

所谓值类型就是:存储的是单个的值(变量是在栈里边进行分配的,因此效率高)

(1)简单类型:整数(int)、浮点(float)、实数、字符型(char ' ' 注意是单引号)、布尔(bool)

(2)复合类型:结构、枚举

引用类型:

类、接口、数组、委托

 

值类型例子:

对age2改变并未影响到age。

c#变量及数据类型全解析_第4张图片

整数类型:

补充:int  类型 的默认值 为 0。

c#变量及数据类型全解析_第5张图片

浮点类型:

主要存储含有小数的数据。

将一个数值、小数强制指定为小书类型或double类型:

(如果一个小数后边没有加 f 或者 d,默认是double类型)

// 强制指定为float类型,后边加f或大写F
float a = 1.1f;
// 强制指定为double类型,后边加d或大写D
double b = 23d;

c#变量及数据类型全解析_第6张图片

 

decimal类型:

decimal类型表示128位数据类型,它是一种精度更高的浮点类型,其精度可达到28位,取值范围为:

(通常在金融计算金额,财务方面,货币 会用到)

如果希望一个小数被当做成decimal类型使用,必须要使用后缀mM,如:

decimal money = 1.12m;
decimal money = 1.12M;

否则会提示错误:

c#变量及数据类型全解析_第7张图片

 

布尔 bool 类型:

布尔类型主要用来表示true、false值,C#中定义布尔类型时,需要使用bool关键字。例如:

bool类型的默认值是false  ( bool赋值时只能赋值true或false )

bool a = true;

 

字符类型:(不常用,因为有string字符串类型)

(c#语言中,使用char/Char类定义字符,并且字符只能用单引号 - 注意书写的时候 是单引号)

只能定义单个字符,不能写多个字符 !!!!

char name = '吕';
// 或
Char name = '吕'

c#变量及数据类型全解析_第8张图片

 

字符串类型:

(***** 必须使用双引号 ******)

 

补充:

(1)转义字符  \ ,在c#中如果想输出 \ 需要 \\ 再加一个反斜线(与js一样)。

c#变量及数据类型全解析_第9张图片

(2)转义字符小技巧:

@

在字符串类型中如果想输出多个\ ,在字符串前边添加@符号即可,就不需要添加\\ 两个反斜线了:

补充:

(1)\a :当字符串中有 \a 且没有被转义时,输出时,你的电脑会发出一个铃声(有点意思)

 string a = "lx\ac";
Console.WriteLine(a); // 电脑会发出 铃铃铃 ···声音

(2)在int类型中,数据初始化时,与数据库打交道,有时我们会把int型数据赋值为 null,但是如果直接赋值,肯定会报错,可以在int后边加上 一个问号:

(此问号是为数据库设计的)

int? number = null;

 

 

小练习:

c#变量及数据类型全解析_第10张图片

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args) // Main 主入口方法
        {
            int age = 23; // 整数类型
            double total = 98340d; // double类型
            char sex = '男'; // 字符类型
            bool isValid = true; // bool类型
            Console.WriteLine("在线保险单");
            Console.WriteLine("年龄:" + age);
            Console.WriteLine("保险总额:" + total);
            Console.WriteLine("性别:" + sex);
            Console.WriteLine("是否有效:" + isValid);
            Console.ReadLine();
        }
    }
}

 

你可能感兴趣的:(c#)