C# 学习第二弹

一、变量

存储区(内存)中的一个存储单元

(一)变量的声明和初始化

1、声明变量——根据类型分配空间

①声明变量的方式

—变量类型 变量名 = 数值;

—变量类型 变量名;

变量名 = 数值;

—变量类型 变量1,变量2,变量3;

竟然可以用汉字,但是非常不建议用!!!!

namespace Demo2
{
    class Program
    {
        static void Main(string[] args)
        {
            //声明变量的方式
            int money = 100;
            int mon2;
            mon2 = 200;
            int m1, m2, m3, m4;
            int 往 = 2;
        }
    }
}

 ② 变量的命名规则

首字母:字母/下划线

其余部分:任意数字/字母/下划线

变量的基本要求:简短且能清楚的表明变量的作用,通常第一个单词首字母小写,其余单词首字母大写。

变量名不能与C# 关键字冲突

变量区分大小写

2、初始化变量——将数据存入内存空间

①单独初始化变量

②声明时初始化变量

③同时初始化多个变量 

变量的作用域

静态变量使用类名引用

实例变量使用类对象引用

类内:静态变量随类的创建而创建,实例变量随对象的创建而创建;静态方法不能调用实例变量,需将类实例化之后再调用,非静态方法可以调用静态变量和实例变量。

类之间:静态方法可直接调用,非静态方法需实例化类之后再调用;

public class MyClass
    {
        // 静态变量  
        public static int StaticVar = 0;

        // 实例变量  
        public int InstanceVar = 0;

        // 静态方法  
        public static void StaticMethod()
        {
            // 可以访问和修改静态变量  
            StaticVar = 10;

            // 不能直接访问实例变量,除非通过对象实例  
            // MyClass instance = new MyClass();  
            // instance.InstanceVar = 20; // 这样是可以的,但通常不是静态方法的做法  
        }

        // 非静态方法(实例方法)  
        public void InstanceMethod()
        {
            // 可以访问和修改实例变量和静态变量  
            InstanceVar = 20;
            StaticVar = 30;
        }
    }

    class Program1
    {
        static void Main()
        {
            // 静态方法调用,不需要实例化对象  
            MyClass.StaticMethod();

            // 实例化对象  
            MyClass instance = new MyClass();

            // 调用非静态方法  
            instance.InstanceMethod();

            // 访问静态和非静态变量  
            Console.WriteLine("StaticVar: " + MyClass.StaticVar); // 输出: 30  
            Console.WriteLine("InstanceVar: " + instance.InstanceVar); // 输出: 20  
        }
    }
Console.WriteLine("欢迎来到90年代!\n");
Console.WriteLine("请输入用户名:");
string x = Console.ReadLine();
Console.WriteLine("当前用户名为:" + x);
Console.Read();

3、使用变量——取出数据使用

注意:使用变量前要进行初始化,变量名规则

(二)数据类型

1、值类型——值类型直接存储

(1) 简单类型

①整数类型

②浮点类型

强制转换使用f或d,默认为double类型。

------decimal类型(财务/货币计算)

decimal类型表示128位数据类型,是一种精度更高的浮点类型,精度可以达到28位,取值范围为\pm 1.0\times 10^{-28} \sim \pm7.9\times10^{28}。如果希望一个小数被当成decimal类型使用,需要使用后缀m或M。

decimal d = 3.2m;

 ③布尔类型

2、引用类型 ——存储对值的引用

①object类型

object类是所有类的基类。

②string类型

简化字符串操作。

string类型的变量一旦初始化之后,值不会发生改变。

3、值类型和引用类型的区别

例:

3、枚举类型

 枚举是一组描述性的名称

枚举定义一组有限的值,不能包含方法

对可能的值进行约束

枚举允许描述行名称表示整数值

4、类型转换

(1)隐式类型转换

①两种类型兼容
②目标类型精度大于源类型

char类型可以隐式的转换成整型和浮点数类型。其他类型无法隐式的转换为char类型。

 (2)显式类型转换(前置类型转换)高精度->低精度

①(类型名)表达式

int b = (int)10.2

 int类型最大取值范围为2147483647出现溢出。

 ②Convert.To类型名(表达式)

当发生溢出的时候会提示报错,而不是负数。

③类型名.Parse(表达式),只适用于数值类型的转换

(3)装箱和拆箱——值类型和引用类型的转换 

拆箱的类型应该与原类型一致 !!!

int i = 10;
object obj = i;
int j = (int)obj;

 二、常量

(一)常量的定义和分类

1、定义:不能被改变的量

2、分类

编译时常量const:

运行时常量readonly:不能定义在构造方法中,只能定义在类体内.

const初始化之后值不变,语句顺序不影响运行结果。 readonly没初始化之前值为0。

 三、变量与常量的区别

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值