zoukankan      html  css  js  c++  java
  • C#基础(二)变量和常量

    新建一个test.cs

    using System;
    namespace google.com
    {
        class MyFirstClass
        {
            static void Main()
            {
                Console.WriteLine("Hello world!");
            }
        }
    }

    编译成功后会在该目录下生成test.exe文件。

    程序解释:

    using System是用来引入System基类,和java的import相似,C#的所有工作都依赖于该基类。

    namespace google.com表示命名空间为google.com,命名空间为的是解决命名冲突问题,可修改。

    变量的类型
    静态变量:

    从程序开始运行,就被分配内存,若静态变量为引用类型,则初始值为null。

    实例变量:

    在使用该变量才进行内存分配。类的实例变量存在于类的实例创建开始到该实例被释放。结构的实例变量和它的生存周期是相同的。

    局部变量:

    局部变量不会自动初始化,因此,在使用时必须显式地初始化。

    值参数:

    相当于一个局部变量,只是初始值为实参给定。

    引用参数:
    int F(ref int i, int j)
    {
        i--;
        return i + j;
    }
     
    //调用F
    int i = 10;
    int sum = F(ref i,100);  
    Consold.WriteLine( i );  //输出9
    ref声明的为引用参数,j是值参数。在调用包含ref参数的方法时也要加ref修饰变量。
    输出参数:

    类似引用参数,也不创建新的存储位置,输出参数的值总是与基础变量相同。输出变量不一定要显式初始化,在函数成员内部,out参数被视为未初始化的。

    static int s;   //定义静态变量,默认值为0
    int v;   //定义int型变量
    void F(int[]a, int i, ref int r, out int 0)  //定义数组a,值参数i,引用参数r,输出参数o
    变量初始化

    1.变量或者结构中的字段,如果没有显式地初始化,默认为0。

    2.方法中的变量,必须显式地初始化,否则使用该变量是会出错。

    3.一般值类型都具有默认初始值,而引用类型没有默认初始值

    变量的作用域
    using System;
    namespace google.com
    {
        class MyFirstClass
        {
            int j = 30;
            static void Main()
            {
                int j = 20;
                int i = 5;
                Console.WriteLine(i+j);
            }
        }
    }

    第一个变量j属于整个类,第二个j属于Main方法,第二个j会替代第一个j,所以输出的是25。

    using System;
    namespace google.com
    {
        class MyFirstClass
        {
            static void Main()
            {
                int j = 20;
                for(int i=0; i<10; i++){
                    int j = 5;
                    Console.WriteLine(i+j);
                }
                
            }
        }
    }

    这段代码编译会出错,因为第一个j和for循环里的变量j冲突了。

    常量

    用const关键字声明

    1.常必须在声明的时候就初始化,而且赋值后就不能再更改。

    2.常量问题静态的,不必再用static声明。

  • 相关阅读:
    难以捉摸?机器学习模型的可解释性初探
    什么是边缘计算?它将如何补充5G?
    2021年将会成为主流的四个云计算技术
    中国SaaS这个局,AI能破吗?
    边缘计算点燃新风暴,IT与OT之战一触即发
    为什么保护云安全是一个数学问题
    物联网中的热门IT技能
    2021 区块链及数字货币9大展望
    边缘计算将取代云计算?5G时代的最强黑马出现了吗?
    2021年区块链十大发展趋势:那些偶然中的必然
  • 原文地址:https://www.cnblogs.com/yoomin/p/3497747.html
Copyright © 2011-2022 走看看