首页 > 编程语言 >C# 变量

C# 变量

时间:2023-03-07 11:36:31浏览次数:35  
标签:Console 变量 C# VariableDemo int 实例 WriteLine

C# 变量

本文主要介绍C#中,定义声明变量、声明多个变量、变量名及命名规则、final变量、输出变量值、局部变量、实例变量、类变量(静态变量)和标识符,以及相关的示例代码。

1、变量类型

变量其实通过一个标记调用内存中的值,而变量名就是这个标记的名称,但是万一这个标记已经被提前占用或者解释器认为这个标记是不合法的,那么就会报错。

在C#中,有不同类型的变量(使用不同的关键字定义),例如:

int :存储整数(整数),不带小数,例如,123-123

double:存储浮点数,带小数,例如,19.99-19.99

char:存储单个字符,例如,'a''B'。字符值用单引号引起来。

string:存储文本,例如,“Hello World"。字符串值用双引号引起来。

bool:存储具有两种状态的值:truefalse

2、定义声明变量

要创建变量,必须指定类型并为其分配值:

语法

type variable = value;

其中type是C#的一种类型,例如,intstring,而variable是C#的变量名,例如,xname=用于为变量分配值。

要创建一个应存储文本字符串的变量,请看以下示例:

例如,

创建类型为string的名为name的变量,并为其分配值"cjavapy"

string name = "cjavapy";
Console.WriteLine(name);

要创建一个应该存储数字的变量,请看以下示例:

例如,

创建类型为int的名为myNum的变量,并为其分配值15:

int myNum = 15;
Console.WriteLine(myNum);

还可以在不分配值的情况下声明变量,然后在以后分配值:

例如,

int myNum;
myNum = 15;
Console.WriteLine(myNum);

请注意,如果将新值分配给现有变量,它将覆盖以前的值:

例如,

myNum的值从15更改为20

int myNum = 15;
myNum = 20;  // myNum 的值是 20
Console.WriteLine(myNum);

3、const 变量

const关键字修饰的变量,只能进行一次赋值操作,并且在生存期内不可以改变它的值。如果不想之后的代码覆盖现有值,则可以添加const关键字。

例如,

const int myNum = 15;
myNum = 20;  // 会报错: The left-hand side of an assignment must be a variable, a property or an indexer

4、其它类型变量

定义声明其它类型变量的示例代码。

例如,

int myNum = 5;
double myDoubleNum = 5.99D;
char myLetter = 'D';
bool myBool = true;
string myText = "Hello";

5、打印输出变量

WriteLine()方法通常用于显示变量。

要将文本和变量拼接在一起成一个字符串,请使用+字符:

例如,

String name = "cjavapy";
Console.WriteLine("我是 " + name);

还可以使用+字符将两个字符串变量拼接成一个字符串:

例如,

string firstName = "cjavapy";
string lastName = ".com";
string fullName = firstName + lastName;
Console.WriteLine(fullName);

对于数字值,+字符用作数学运算符(请注意,此处我们使用int(整数)变量):

例如,

int x = 5;
int y = 6;
Console.WriteLine(x + y); // 输出 x + y的值

6、定义声明多个变量

要声明多个相同类型的变量,请使用逗号分隔的列表:

例如,

int x = 5, y = 6, z = 50;
Console.WriteLine(x + y + z);

7、C# 标识符

所有C# 变量必须使用唯一的名称标识。

这些唯一的名称称为标识符。

标识符可以是短名称(如xy),也可以是更具描述性的名称。

注意:建议使用描述性名称,以创建可理解和可维护的代码:

例如,

// 通过变量名就知道存的是年龄
int age = 60;

// 变量名可以,但是不好理解
int a = 60;

构造变量名称(唯一标识符)的一般规则是:

 

  • 名称可以包含字母,数字,下划线
  • 名称必须以字母开头
  • 名称应以小写字母开头,并且不能包含空格
  • 名称也可以以_开头(但在本教程中我们将不使用它)
  • 名称区分大小写( myVar 和 myvar 是不同的变量)
  • 保留字(例如,C#关键字,int或bool)不能用作名称

 

6、C# 局部变量

 

  • 局部变量声明在方法、构造方法或者语句块中;
  • 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
  • 访问修饰符不能用于局部变量;
  • 局部变量只在声明它的方法、构造方法或者语句块中可见;
  • 局部变量是在栈上分配的。
  • 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

 

例如,

using System;

namespace com.cjavapy
{
  public class Test
 {
    public void say()
    {
        int age = 0;//声明变量需要初始化,没有初始化编译时会报错
        age = age + 3;
        Console.WriteLine("cjavapy的年龄是: " + age);
    }

    static void Main(string[] args)
    {
        Test test = new Test();
        test.say();
    }
    
  }
}

7、实例变量

 

  • 实例变量声明在一个类中,但在方法、构造方法和语句块之外;
  • 当一个对象被实例化之后,每个实例变量的值就跟着确定;
  • 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
  • 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
  • 实例变量可以声明在使用前或者使用后;
  • 访问修饰符可以修饰实例变量;
  • 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
  • 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
  • 实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName

 

例如,

using System;

namespace com.cjavapy
{
    public class VariableDemo
    {

        //实例变量
        int a;

        //静态变量
        static int b;

        static void Main(string[] args)
        {
            Console.WriteLine(VariableDemo.b);//静态变量可以直接被类调用,实例变量不可以

            //新建一个对象 variableDemo
            VariableDemo variableDemo = new VariableDemo();

            //实例变量和静态变量都可以被对象调用,默认值为0或null
            Console.WriteLine(variableDemo.a);//0
            Console.WriteLine(VariableDemo.b);//0

            //再新建两个对象 variableDemo1 、variableDemo2
            VariableDemo variableDemo1 = new VariableDemo();
            VariableDemo variableDemo2 = new VariableDemo();

            //对象variableDemo将静态变量b的值改变
            VariableDemo.b = 10;

            //静态变量实质上是全局变量,其中一个变量将其值改变,其他对象得到的都是改变后的结果
            Console.WriteLine(VariableDemo.b);//10
            //Console.WriteLine(variableDemo1.b);
            //Console.WriteLine(variableDemo2.b);

            //对象variableDemo将实例对象a的值改变
            variableDemo.a = 15;

            //实例变量属于对象私有,某一个对象将其值改变,不影响其他对象
            Console.WriteLine(variableDemo.a);//15
            Console.WriteLine(variableDemo1.a);//0
            Console.WriteLine(variableDemo2.a);//0
        }
    }
}

8、类变量(静态变量)

 

1)类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外。

2)无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。

3)静态变量除了被声明为常量外很少使用,静态变量是指声明为 public/privateconst 和 static 类型的变量。静态变量初始化后不可改变。

4)静态变量储存在静态存储区。经常被声明为常量,很少单独使用 static 声明变量。

5)静态变量在第一次被访问时创建,在程序结束时销毁。与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为 public 类型。默认值和实例变量相似。数值型变量默认值是 0,布尔型默认值是 false,引用类型默认值是 null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。

6)静态变量可以通过:ClassName.VariableName的方式访问。

7)类变量被声明为 public static const 类型时,类变量名称一般建议使用大写字母。如果静态变量不是 public 和 const 类型,其命名方式与实例变量以及局部变量的命名方式一致。

 

例如,

using System;

namespace com.cjavapy
{
    public class VariableDemo
    {

        //实例变量
        int a;

        //静态变量
        static int b;

        static void Main(string[] args)
        {
            Console.WriteLine(VariableDemo.b);//静态变量可以直接被类调用,实例变量不可以

            //新建一个对象 variableDemo
            VariableDemo variableDemo = new VariableDemo();

            //实例变量和静态变量都可以被对象调用,默认值为0或null
            Console.WriteLine(variableDemo.a);//0
            Console.WriteLine(VariableDemo.b);//0

            //再新建两个对象 variableDemo1 、variableDemo2
            VariableDemo variableDemo1 = new VariableDemo();
            VariableDemo variableDemo2 = new VariableDemo();

            //对象variableDemo将静态变量b的值改变
            VariableDemo.b = 10;

            //静态变量实质上是全局变量,其中一个变量将其值改变,其他对象得到的都是改变后的结果
            Console.WriteLine(VariableDemo.b);//10
            //Console.WriteLine(variableDemo1.b);
            //Console.WriteLine(variableDemo2.b);

            //对象variableDemo将实例对象a的值改变
            variableDemo.a = 15;

            //实例变量属于对象私有,某一个对象将其值改变,不影响其他对象
            Console.WriteLine(variableDemo.a);//15
            Console.WriteLine(variableDemo1.a);//0
            Console.WriteLine(variableDemo2.a);//0
        }
    }
}

标签:Console,变量,C#,VariableDemo,int,实例,WriteLine
From: https://www.cnblogs.com/GaoUpUp/p/17187439.html

相关文章

  • centos7安装python3
    1、首先安装依赖包,centos里面是-devel yum-ygroupinstall"Developmenttools"yuminstallzlib-develbzip2-developenssl-develncurses-develsqlite-develrea......
  • Docker - 安装与配置
    Docker是一个开源的应用容器引擎,基于GO语言开发,开发者可以打包应用及依赖包到一个可移植的容器中,然后发布到任何操作系统的机器上,也可以实现虚拟化。容器是完全使用......
  • JavaScript 使用DOM操作CSS
    <!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title></title> <styletype="text/css"> #box1{ width:100px; height:100px; back......
  • JavaScript 读取元素的样式
    <!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title></title> <styletype="text/css"> #box1{ width:100px; height:100px; back......
  • JavaScript核心功能之模块的导入导出
    一、模块的概念模块是将JavaScript程序拆分为可按需导入的单独模块的机制。 二、如何创建模块模块是定义在单独的.js文件中的。 三、export导出模块的两种方式1、将expo......
  • SpringBoot Cglib代理不生效
    启动项目抛出异常:Causedby:org.springframework.beans.factory.BeanNotOfRequiredTypeException:Beannamed'testTableDao'isexpectedtobeoftype'com.TestTableD......
  • JavaScript核心功能之模块命名冲突的解决方式
    避免模块命名冲突的三种解决方式方式一:使用as重命名导出与导入在你的import和export语句的大括号中,可以使用as关键字跟一个新的名字,来改变你在顶级模块中将要使用的功......
  • JavaScript核心功能之模块的应用
    应用模块到你的HTML脚本中的两种方式: 方式一:将type="module"放到<script>标签中,来声明这个脚本是一个模块<scripttype="module"src="main.js"></script>方式二:将模块......
  • Visual Components帮助丹麦公司DTI在全球市场保持竞争力
    丹麦技术研究所(DTI)是通过商业项目或由丹麦国家政府或欧盟资助的项目为广泛行业提供研发服务的供应商。他们与客户密切合作,了解他们的具体需求,并通过使用机器人和自动化......
  • 《渗透测试》抓包技术&HTTPS协议&APP&小程序&PC应用&WEB&转发联动 2023 day6&7
      准备工作:1、浏览器安装证书:解决本地抓HTTPS1.1打开burpsuite的Proxy模块   1.2点击下方的import/exportCAcertificate选择输出的第一个按钮 1.3......