TOC

This article has been localized into Chinese by the community.

基础知识:

变量

变量可以看做一块存储空间,是编程中很重要的概念,在C#中,可以像这样定义变量:

<数据类型> <名称>;

如下是一个定义变量的例子:

string name;

这是最基础的方式,但是此时变量没有值。你可以之后赋值,也可以像这样在声明变量时赋值:

<data type> <name> = <value>;

如果这个变量不是你正在使用的方法的局部变量(比如它是一个类的成员)。你可能希望设置变量的可见性:

<可见性> <数据类型> <名称> = <值>;

如下是一个完整的例子:

private string name = "John Doe";

可见性的部分和类相关,你可以在类的章节中找到完整的解释。我们继续变量的话题,下面这个例子使用了多个变量:

using System;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{
    string firstName = "John";
    string lastName = "Doe";

    Console.WriteLine("Name: " + firstName + " " + lastName);

    Console.WriteLine("Please enter a new first name:");
    firstName = Console.ReadLine();

    Console.WriteLine("New name: " + firstName + " " + lastName);

    Console.ReadLine();
}
    }
}

这个例子的大部分已经解释过了,我们直接看有意思的部分。首先,我们定义了几个string类型的变量,string类型包含文本,如你所见,我们用文本直接对其赋值。接下来,我们向控制台输出了一行文本,这其中用到了两个变量。这个字符串是由 + 号连接的不同部分组成的。

接下来,我们要求用户输入一个名字, 然后用ReadLine()方法从控制台中读取用户输入并给firstName变量赋值。当用户按下回车键时,新的名字赋值到变量中,下一行我们再次输出名字来展示变化。我们已经使用了我们第一个变量和变量的最重要的特性:在运行时改变其值。

另一个有趣的例子是做数学运算,接下来是一个和上一个例子有很多相同代码的例子:

int number1, number2;

Console.WriteLine("Please enter a number:");
number1 = int.Parse(Console.ReadLine());

Console.WriteLine("Thank you. One more:");
number2 = int.Parse(Console.ReadLine());

Console.WriteLine("Adding the two numbers: " + (number1 + number2));

Console.ReadLine();

尝试把这个放到我们的Main方法中。唯一的新“技巧”是int.Parse()方法。它读取一个字符串并转化为一个整型。如你所见,这个应用没有验证用户输入,如果你的输入不是一个数字,将会发生一个异常。这些将在之后讨论。

变量&范围

目前为止,我们只用到了本地变量,本地变量只能在当前方法中使用。在C#中,在方法内定义的变量不能在方法外使用,所以被称为本地变量。如果你熟悉编程,也应该知道全局变量。全局变量可以在很多地方被调用,但是C#没有全局变量的概念。不过你可以在类中定义一个可以被类包含的所有方法访问的域,下面是演示。

using System;

namespace VariableScope
{
    class Program
    {
private static string helloClass = "Hello, class!";

static void Main(string[] args)
{
    string helloLocal = "Hello, local!";
    Console.WriteLine(helloLocal);
    Console.WriteLine(Program.helloClass);
    DoStuff();
}

static void DoStuff()
{
    Console.WriteLine("A message from DoStuff: " + Program.helloClass);
}
    }
}

注意helloClass成员,在类的范围内被声明而不是在方法中被声明。这将允许所有方法Main()DoStuff()访问它。在Main()中定义的helloLocal变量就做不到,只能特定的方法内使用。

这个概念叫做"范围", 它区分了此变量在哪里被定义了。"范围"的概念也能防止变量在大的程序中,其值在不同的地方可能被篡改。另外一种方法帮助我们解决此问题,称为成员可见性(在此例中,申明了私有类型的关键字),这些内容我们将会在有关”类“的章节中讨论。

小结

变量允许您存储各种类型的数据,例如 文本字符串,数字或自定义对象。 有局部变量,可以在定义它的方法中访问,类字段可以从类的所有方法访问,如果可见性允许,甚至可以在类外部访问。


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!