002集——C#基本语法——C#学习笔记

C# 是一种面向对象的编程语言。在面向对象的程序设计方法中,程序由各种相互交互的对象组成。相同种类的对象通常具有相同的类型,或者说,是在相同的 class 中。

例如,以 Rectangle(矩形)对象为例。它具有 length 和 width 属性。根据设计,它可能需要接受这些属性值、计算面积和显示细节。

让我们来看看一个 Rectangle(矩形)类的实现,并借此讨论 C# 的基本语法:

首先新建一个控制台,如下图:

using System;
namespace RectangleApplication
{
    class Rectangle
    {
        // 成员变量
        int length;
        int width;
        public void Acceptdetails()
        {
            length = 1;    
            width = 2;
        }
        public int GetArea()
        {
            return length * width;
        }
        public void Display()
        {
            Console.WriteLine("Length: {0}", length);
            Console.WriteLine("Width: {0}", width);
            Console.WriteLine("Area: {0}", GetArea());
        }
    }
   
    class ExecuteRectangle
    {
        static void Main(string[] args)
        {
            Rectangle r = new Rectangle();
            r.Acceptdetails();
            r.Display();
            Console.ReadLine();
        }
    }
}

在C#中,static void Main(string[] args) 是一个特殊的方法签名,它指定了程序的入口点。这意味着当程序启动时,这个方法会首先被执行。下面是对这个签名各个部分的解释:

static:这个关键字表明Main方法是一个静态方法,即它属于类本身而不是类的某个特定实例。由于Main方法是程序的入口点,并且程序在创建任何类的实例之前就开始执行,因此它必须是静态的。

void:这个关键字表示Main方法不返回任何值。在C#中,如果一个方法不产生任何结果供调用者使用,那么它的返回类型就是void。

Main:这是方法的名称。在C#中,Main是一个特殊的名称,用于指定程序的入口点。虽然技术上你可以使用其他名称(但需要使用特定的属性来指定入口点),但Main是最常用和标准的。

(string[] args):这是方法的参数列表,包含一个名为args的参数,它是string类型的数组。这个数组用于接收命令行参数,这些参数是在命令行或终端中运行程序时指定的。例如,如果你在命令行中运行一个程序并附加了arg1 arg2,那么args数组将包含两个元素:args[0]将是"arg1",args[1]将是"arg2"。如果没有提供任何命令行参数,args数组将至少包含一个元素,即空字符串(""),但你也可以将其视为空的或未使用的。

综上所述,static void Main(string[] args) 定义了一个静态的、不返回任何值的方法,它是C#程序的入口点,并且可以接收来自命令行的参数。这是大多数C#控制台应用程序和许多其他类型应用程序的标准入口点签名。

运行结果:

C#基本语法

在C#中,当你使用Console.WriteLine或类似的输出方法时,字符串中的{}用作占位符,表示该位置将被后续参数的值所替换。这些占位符允许你在字符串中嵌入变量的值或表达式的结果,而不需要使用字符串连接(+)操作符。

{0} 是一个占位符,表示该位置将被Console.WriteLine方法的第二个参数(在本例中为length、width和GetArea()的返回值)的值所替换。

需要注意的是,占位符中的数字(在这个例子中是0)指定了Console.WriteLine方法中参数列表的索引位置(索引从0开始)。然而,在只有一个占位符的情况下,你可以省略索引(即只写{}),因为编译器会自动将其视为第一个参数。但是,为了清晰起见,特别是在有多个占位符时,明确指定索引是一个好习惯。

如果你的代码中有多个占位符,你可以这样使用它们:

int a = 10, b = 20;

Console.WriteLine("a is {0} and b is {1}", a, b);

这里,{0}将被a的值替换,{1}将被b的值替换。

但是,对于你的特定情况,由于每个Console.WriteLine调用只包含一个占位符,你可以省略索引,如下所示:

Console.WriteLine("Length: {}", length); // 注意:在C#中,这样做实际上需要String.Format或插值字符串

// 但对于Console.WriteLine来说,更常见的做法是直接使用+操作符或C# 6.0及更高版本中的插值字符串

Console.WriteLine("Length: " + length); // 使用+操作符

Console.WriteLine($"Length: {length}"); // 使用插值字符串(推荐)

Console.WriteLine($"Width: {width}");

Console.WriteLine($"Area: {GetArea()}");

然而,上面的Console.WriteLine("Length: {}", length);示例在C#中并不是直接支持的语法。我提到它只是为了说明占位符的概念。在C#中,对于Console.WriteLine,你通常会使用+操作符来连接字符串和变量,或者使用C# 6.0及更高版本中引入的插值字符串(如上面最后两个示例所示)。

using关键字

在任何 C# 程序中的第一条语句都是:

using System;

一般在程序开头添加 using System;,这时System.String 就可简写为string 。

例如:

// using System;

namespace ConsoleApp1

{

class Program

{

static void Main(string[] args)

{

System.String a = "Hello World!";

System.Console.WriteLine(a);

System.Console.ReadKey();

}

}

}

using System;

namespace ConsoleApp1

{

class Program

{

static void Main(string[] args)

{

string a = "Hello World!";

Console.WriteLine(a);

Console.ReadKey();

}

}

}

是等价的。

using 关键字用于在程序中包含命名空间。一个程序可以包含多个 using 语句。

class关键字

class关键字用于声明一个类

注释

注释是用于解释代码。编译器会忽略注释的条目。在 C# 程序中,多行注释以/*开始,并以字符 */ 终止,如下所示:

/* This program demonstrates

The basic syntax of C# programming

Language */

单行注释是用 '//' 符号表示。例如:

}//end class Rectangle
成员变量

变量是类的属性或数据成员,用于存储数据。在上面的程序中,Rectangle 类有两个成员变量,名为 length 和 width。

成员函数

函数是一系列执行指定任务的语句。类的成员函数是在类内声明的。我们举例的类 Rectangle 包含了三个成员函数: AcceptDetails、GetArea 和 Display。

实例化一个类

在上面的程序中,类 ExecuteRectangle 是一个包含 Main() 方法和实例化 Rectangle 类的类。

Rectangle r = new Rectangle();

标识符

标识符是用来识别类、变量、函数或任何其它用户定义的项目。在 C# 中,类的命名必须遵循如下基本规则:

标识符必须以字母、下划线或 @ 开头,后面可以跟一系列的字母、数字( 0 - 9 )、下划线( _ )、@。

标识符中的第一个字符不能是数字。

标识符必须不包含任何嵌入的空格或符号,比如 ? - +! # % ^ & * ( ) [ ] { } . ; : " ' / \。

标识符不能是 C# 关键字。除非它们有一个 @ 前缀。 例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字。

标识符必须区分大小写。大写字母和小写字母被认为是不同的字母。

不能与C#的类库名称相同。

C#关键字

关键字是 C# 编译器预定义的保留字。这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上 @ 字符作为前缀。

在 C# 中,有些关键字在代码的上下文中有特殊的意义,如 get 和 set,这些被称为上下文关键字(contextual keywords)。

下表列出了 C# 中的保留关键字(Reserved Keywords)和上下文关键字(Contextual Keywords):

相关推荐
IT技术分享社区7 分钟前
C#实战:使用腾讯云识别服务轻松提取火车票信息
开发语言·c#·云计算·腾讯云·共识算法
ssf-yasuo11 分钟前
SPIRE: Semantic Prompt-Driven Image Restoration 论文阅读笔记
论文阅读·笔记·prompt
As977_20 分钟前
前端学习Day12 CSS盒子的定位(相对定位篇“附练习”)
前端·css·学习
ajsbxi23 分钟前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet
Rattenking24 分钟前
React 源码学习01 ---- React.Children.map 的实现与应用
javascript·学习·react.js
TeYiToKu44 分钟前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
dsywws1 小时前
Linux学习笔记之时间日期和查找和解压缩指令
linux·笔记·学习
道法自然04021 小时前
Ethernet 系列(8)-- 基础学习::ARP
网络·学习·智能路由器
爱吃生蚝的于勒1 小时前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法
cuisidong19973 小时前
5G学习笔记三之物理层、数据链路层、RRC层协议
笔记·学习·5g