前面因为演示写了一些示例代码,对于初学者,可能不是很了解每一行代码的意思,今天我们就来大概的了解一下这些示例代码,我们将从一个关于数据类型和运算符的综合示例来说明:
using System;
namespace operator1
{
class Program
{
static void Main(string[] args)
{
int num1, num2;
string name;
Console.WriteLine("Please type your name:");
name = Console.ReadLine();
Console.WriteLine($"Hello {name}, Welcome to C#!");
Console.WriteLine("Please type a number:");
num1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Please type a number again:");
num2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine($"The sum of {num1} and {num2} is " + $"{num1 + num2}.");
Console.WriteLine($"The result of subtracting {num2} from {num1} is " + $"{num1 - num2}.");
Console.WriteLine($"The product of {num1} and {num2} is " + $"{num1 * num2}.");
Console.WriteLine($"The result of diving {num1} by {num2} is" + $" {num1 / num2}.");
Console.WriteLine($"The remainder after diving {num1} by {num2} is" + $" {num1 % num2}.");
}
}
}
运行结果:
现在我们来看一看每一行代码:
在讲代码前,我们先了解一个概念,就是 namespace,在 C# 中,通过 namespace 来标识一段代码及其内容,这样方便引用,在需要时,我们只需要通过引用 namespace 就可以引用这段代码,从而实现代码复用。
我们通过 using 来引用 namespace,这行代码就是引用 System 这个 namespace;
using System;
这个是你自己创建的 namespace,里面就是我们自己构建的代码内容;通常这里会自动填充,namespace 名称和你文件名相同;
namespace operator1
class 定义了一个类(关于类,以及类的一些属性,这些内容比较抽象,我们后面如果有时间,单独找一天聊聊,这里你就知道,这个是定义了一个类就可以了。)
class Program
这行代码表示创建一个方法(类成员),static 表示该方法是静态的,void 表示该方法没有返回值,main 为这个方法的名称,string[] args 表示给该方法传递的参数为字符串数组(在 cmd 里面以交互式的方式输入的);
static void Main(string[] args)
下面就是我们实现功能的代码:
int 和 string 都是声明变量的类型,C# 和 Python 不一样,使用变量时,必须要先声明变量的类型,然后才可以使用;
int num1, num2;
string name;
Console.WriteLine() 类似于 Python 中的 print,输出指定的内容,在这里用于输出 "Please type your name:" 提示信息;
Console.WriteLine("Please type your name:");
这段代码分为两部分,一部分是 Console.ReadLine() 获取用户的输入信息,然后通过 “=” 赋值给 name 变量;
name = Console.ReadLine();
在这里我们在 Console.WriteLine() 里面使用了 “$"。在 C# 中,"$" 被称为 字符串内插,就是将内插字符串({}内的)解析为实际含义的字符串(将变量名,解析成变量实际的内容。你也可以将该功能理解成格式化输出。)
Console.WriteLine($"Hello {name}, Welcome to C#!");
前面我们有声明 num1 的变量类型为 int,但用户输入的数据类型为 string,所有我们通过 Console.ReadLine() 获取用户的输入后,还需要通过 Convert.ToInt32() 将数据类型转换为 int(关于 int16,int32 和 int 64 之间的区别在于支持的整数范围不一样;
num1 = Convert.ToInt32(Console.ReadLine());
现在你应该可以理解了整个代码的含义。
扩展:
我示例中的数字,相除得到的结果是 1,但实际结果其实不是 1,我们怎么才能获取到真实的结果,或者说获取到一个更加接近真实结果的值?