C#变量

2350 更新于: 2021-05-24 读完约需 9 分钟

概述

几乎在所有的编程语言中,都有变量的概念,C#语言也不例外,也是不可或缺的知识点。使用变量可以更容易地完成程序设计和编码。

我们可以将变量看作容器,在C#语言中,可以将不同类型的数据存储到不同类型的变量(容器)中。所以,在声明变量时需要指定变量的数据类型。

除了变量,C#语言中还有与之相对的常量的概念,以及本节中还涉及到的数据类型都将在后续章节中深入学习,这里你只需了解这些概念即可。

声明变量

在C#语言中,声明变量有如下几种语法:

一行只声明一个变量

一行只声明一个变量,语法如下:

<数据类型> <变量名称> [赋值];

以声明人的年龄(age)作为示例,如下:

byte age; // 只声明一个名为age的变量,指定age的数据类型为byte

注:byte数据类型表示无符号整数,取值范围为0-255,关于数据类型将在后续章节详解。

或者在声明变量的同时赋值,通常我们使用等号(=)给变量赋值,其中等号左边是变量名,等号右边是值。表示将右边的值赋给左边的变量,如下:

byte age = 30; // 声明一个名为age(年龄)的变量,同时为age变量赋值为30

一行声明多个变量

这种方式中在一行语句中声明多个变量,变量间以逗号(,)分隔,语法如下:

<数据类型> <变量名称>[,<变量名称2>] [<赋值>];

示例如下:

byte age1, age2, age3; // 这条语句同时声明了三个年龄变量,分别为:age1, age2, age3

或者在声明变量的同时赋值,如下声明多个变量的方式也是正确的:

byte age1=10, age2=20, age3; // 这条语句同时声明了age1, age2, age3这三个变量,并且为其中的变量age1和age2进行了赋值

你也可以将这三个变量以回车的形式分别放在不同的行,只要确保语句最后以分号(;)结束即可,如下:

byte age1 = 10,
     age2 = 20,
     age3;

特别注意:在一行语句声明多个以逗号隔开的变量的语法中,对应声明的所有变量的数据类型是相同的,比如上例中的age1, age2, age3这三个变量的数据类型均为byte,所以如下示例的声明是不正确的:

byte age1="10", age2=20, age3;

C#是强类型语言,所有的变量声明都必须显式或者隐式地指定数据类型,在为变量赋值时需要将正确的数据类型的值赋给有相应数据类型的变量。

所以,上面声明变量的示例错误的原因是:声明的变量age1byte(无符号整型)类型,而加了双引号的"10"是字符串类型,所以不能将字符串类型的值赋值给byte类型的变量。

同样,如下的变量声明也是错误的:

int age = "Rector";

声明变量的约定

下面是C#语言中声明变量的命名约定:

  • 在同一作用域中,变量名必须惟一(关于作用域后面将有章节作详细介绍)
  • 变量名只能以字母、下划线、或者@符号开头,不能以数字开头(可以使用汉字开头,但不建议),后面可以跟任意字母、数字、下划线
  • C#中大小写是敏感的,string name;string Name;表示声明的两个不同的变量
  • 变量声明一般在类或者方法中,作用域不相同
  • 委托的声明可以在类中,也可以和类同级
  • 变量的数据类型一旦确定将不可再更改为其他类型,例如声明:string name;那么这里的name变量的类型始终为string类型,不能像JavaScript那样,后面在使用的时候还可能是其他数据类型。
  • 定义变量时,变量名尽量有意义
  • 变量名应尽量遵循C#的变量命名规范—Camel命名法(首个单词的首字母小写,其后的单词的首字母大写)
  • 变量名不能使用保留的关键字,如果需要使用关键字,则需要在关键字字前面以@符号作为前缀,如:int @is = 25;

知识点强化:
以下哪些变量声明是合法的,哪些不合法,为什么?

string myFirstName;
string 666myFirstName;
string @myMiddleName;
string true;
string _myLastName;
string baidu.com;
int is = 20;
int age = "30";

变量在使用之前必须给它赋值,否则C#会给出编译时错误,以下示例的变量声明是不正确的

byte age1;
byte age2 = age1; //使用了未赋值的局部变量"age1"

一个变量的值可以赋给另一个相同数据类型的变量。但是,在使用变量之前,必须给它赋值,如下:

byte age1 = 20;
byte age2 = age1; // age2的值也将是20

变量的值可以在初始化后的任何时候被修改:

byte age = 20;
age = 100;
Console.WriteLine(age); // 输出结果为: 100

以下是一个C#控制台应用程序接收用户输入的示例,其中声明了一个input的变量,用以存储用户在控制台输入的字符串内容:

using System;

namespace ConsoleApp1
{
    /// <summary>
    /// 这是一个示例控制台应用程序
    /// </summary>
    class Program
    {
        /// <summary>
        /// 这里的Main方法是程序的入口点
        /// </summary>
        /// <param name="args">args是参数</param>
        static void Main(string[] args)
        {
            Console.WriteLine("请输入任意内容...");
            string input = "";
            input = Console.ReadLine();
            Console.WriteLine("你输入的内容是:");
            Console.WriteLine(input);
        }
    }
}

运行结果如图:

在C#中,变量的分类是基于它们在内存中存储值的方式。变量可以是值类型、引用类型或指针类型

从C#3开始,声明变量时可以不需要指定特定的数据类型,而使用var关键字代替数据类型,编译器会自动推断出变量的具体数据类型。在后续的章节我们会详细了解var关键字的含义和用法。

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

本文永久链接码友网 » C#程序设计基础(入门篇) » C#变量 分享:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册