【C#基础:第一部分 基础入门】第一个C#程序

摘要:本文聚焦于C#基础入门中的第一个C#程序,深入剖析了Main方法的细节、代码结构的组成,以及Console类在控制台输入输出方面的应用。通过详细的解释和丰富的实操示例,帮助初学者理解C#程序的基本运行原理和代码编写规范,为进一步学习C#语言打下坚实基础。


文章目录

【C#基础:第一部分 基础入门】第一个C#程序

关键词
一、引言
二、第一个C#程序的准备工作

2.1 开发环境搭建

2.1.1 Visual Studio
2.1.2 VS Code

2.2 第一个C#程序代码示例

三、Main方法详解

3.1 Main方法的作用
3.2 Main方法的定义形式

3.2.1 `static void Main()`
3.2.2 `static void Main(string[] args)`
3.2.3 `static int Main()`
3.2.4 `static int Main(string[] args)`

3.3 Main方法的执行顺序
3.4 实操:使用不同形式的Main方法

3.4.1 运行`static void Main()`示例
3.4.2 运行`static void Main(string[] args)`示例
3.4.3 运行`static int Main()`示例
3.4.4 运行`static int Main(string[] args)`示例

四、代码结构解析

4.1 命名空间(Namespace)
4.2 类(Class)
4.3 方法(Method)
4.4 实操:分析代码结构

五、控制台输入输出(Console类)

5.1 控制台输出(`Console.WriteLine`和`Console.Write`)

5.1.1 `Console.WriteLine`
5.1.2 `Console.Write`

5.2 格式化输出(`Console.WriteLine`的重载形式)
5.3 控制台输入(`Console.ReadLine`)
5.4 实操:控制台输入输出练习

5.4.1 输出练习
5.4.2 输入练习

六、总结与展望

6.1 总结
6.2 展望

七、参考文献
八、附录

8.1 代码汇总

8.1.1 不同形式的Main方法示例
8.1.2 代码结构示例
8.1.3 控制台输入输出示例

8.2 命令汇总

8.2.1 使用VS Code创建控制台项目


【C#基础:第一部分 基础入门】第一个C#程序

关键词

C#;第一个程序;Main方法;代码结构;Console类

一、引言

在学习任何一门编程语言时,编写第一个程序往往是踏上编程之旅的重要起点。对于C#语言而言,第一个程序不仅能让我们快速熟悉开发环境,还能帮助我们理解C#程序的基本结构和运行机制。本文将围绕第一个C#程序展开,详细讲解Main方法、代码结构以及控制台输入输出的相关知识,并通过具体的实操步骤和代码示例,引导读者逐步掌握这些基础知识。

二、第一个C#程序的准备工作

2.1 开发环境搭建

在编写第一个C#程序之前,需要搭建好开发环境。常见的开发环境有Visual Studio和VS Code。以下分别介绍它们的搭建步骤。

2.1.1 Visual Studio

下载安装:访问Visual Studio官方下载页面,选择适合自己的版本(如社区版,免费且功能丰富)进行下载安装。安装过程中,勾选“使用C#的.NET桌面开发”工作负载,以确保包含C#开发所需的工具和框架。
启动项目:安装完成后,打开Visual Studio,选择“创建新项目”,在模板列表中选择“控制台应用程序(.NET)”,设置项目名称和保存位置后点击“创建”,即可创建一个C#控制台项目。

2.1.2 VS Code

下载安装:从VS Code官方网站下载并安装VS Code。
安装C#插件:打开VS Code,点击左侧的扩展图标,搜索“C#”并安装。同时,需要安装.NET SDK,可从.NET官方下载页面获取并安装。
创建项目:打开VS Code的终端,使用命令dotnet new console -n FirstCSharpProgram创建一个名为FirstCSharpProgram的控制台项目。

2.2 第一个C#程序代码示例

创建好项目后,会生成一个Program.cs文件,其中包含了第一个C#程序的基本代码:

using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static void Main(string[] args)
        {
            
            Console.WriteLine("Hello, World!");
        }
    }
}

三、Main方法详解

3.1 Main方法的作用

Main方法是C#程序的入口点,当程序启动时,会首先执行Main方法中的代码。它就像程序的大门,所有的程序逻辑都从这里开始执行。

3.2 Main方法的定义形式

Main方法有多种定义形式,以下是常见的几种:

3.2.1 static void Main()
using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static void Main()
        {
            
            Console.WriteLine("This is a Main method without parameters.");
        }
    }
}

这种形式的Main方法没有参数,也不返回任何值。适用于不需要从命令行接收参数,且程序执行结果不需要返回给操作系统的情况。

3.2.2 static void Main(string[] args)
using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static void Main(string[] args)
        {
            
            if (args.Length > 0)
            {
            
                Console.WriteLine("You passed the following arguments:");
                foreach (string arg in args)
                {
            
                    Console.WriteLine(arg);
                }
            }
            else
            {
            
                Console.WriteLine("No arguments were passed.");
            }
        }
    }
}

这种形式的Main方法接收一个字符串数组args作为参数,该数组包含了从命令行传递给程序的参数。通过遍历args数组,可以获取并处理这些参数。

3.2.3 static int Main()
using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static int Main()
        {
            
            int result = 10 + 20;
            Console.WriteLine($"The result is: {
              result}");
            return result;
        }
    }
}

这种形式的Main方法返回一个整数。返回值通常用于向操作系统表示程序的执行状态,例如返回0表示程序正常结束,返回非0值表示程序出现错误。

3.2.4 static int Main(string[] args)
using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static int Main(string[] args)
        {
            
            if (args.Length > 0)
            {
            
                int num = int.Parse(args[0]);
                int square = num * num;
                Console.WriteLine($"The square of {
              num} is {
              square}");
                return 0;
            }
            else
            {
            
                Console.WriteLine("Please provide a number as an argument.");
                return 1;
            }
        }
    }
}

这种形式结合了接收参数和返回值的功能,既可以从命令行接收参数进行处理,又可以向操作系统返回执行状态。

3.3 Main方法的执行顺序

在C#程序中,Main方法的执行顺序是自上而下的。也就是说,代码会按照在Main方法中编写的顺序依次执行。例如:

using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static void Main()
        {
            
            Console.WriteLine("This is the first line.");
            Console.WriteLine("This is the second line.");
            Console.WriteLine("This is the third line.");
        }
    }
}

在这个示例中,程序会先输出第一行,然后是第二行,最后是第三行。

3.4 实操:使用不同形式的Main方法

3.4.1 运行static void Main()示例

打开Visual Studio或VS Code中的项目。
Program.cs文件中的代码替换为static void Main()形式的代码。
运行程序,观察控制台输出。

3.4.2 运行static void Main(string[] args)示例

打开命令提示符或终端。
导航到项目的可执行文件所在目录(通常在binDebug
etXX
文件夹下,XX为.NET版本号)。
运行程序并传递参数,例如:FirstCSharpProgram.exe arg1 arg2
观察控制台输出,查看传递的参数是否被正确处理。

3.4.3 运行static int Main()示例

替换Program.cs文件中的代码为static int Main()形式的代码。
运行程序,观察控制台输出和返回值(在命令提示符中可通过echo %errorlevel%查看返回值)。

3.4.4 运行static int Main(string[] args)示例

替换代码为static int Main(string[] args)形式的代码。
打开命令提示符或终端,导航到可执行文件目录。
运行程序并传递参数,例如:FirstCSharpProgram.exe 5
观察控制台输出和返回值。

四、代码结构解析

4.1 命名空间(Namespace)

命名空间是一种用于组织代码的机制,它可以将相关的类、接口、结构体等组织在一起,避免命名冲突。在C#程序中,通常会使用namespace关键字来定义命名空间。例如:

using System;

namespace FirstCSharpProgram
{
            
    // 类和其他类型的定义
}

在这个示例中,FirstCSharpProgram就是一个命名空间。命名空间可以嵌套,例如:

using System;

namespace FirstCSharpProgram
{
            
    namespace SubNamespace
    {
            
        class MyClass
        {
            
            // 类的成员
        }
    }
}

要使用命名空间中的类型,需要使用完全限定名或通过using指令引入命名空间。例如:

using System;
using FirstCSharpProgram.SubNamespace;

namespace AnotherNamespace
{
            
    class Program
    {
            
        static void Main()
        {
            
            MyClass myObj = new MyClass();
            // 使用myObj进行操作
        }
    }
}

4.2 类(Class)

类是C#中最基本的类型,它是对象的蓝图,定义了对象的属性和行为。在C#程序中,类通常定义在命名空间中。例如:

using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        // 类的成员
    }
}

类可以包含字段、属性、方法等成员。例如:

using System;

namespace FirstCSharpProgram
{
            
    class Person
    {
            
        // 字段
        private string name;
        private int age;

        // 属性
        public string Name
        {
            
            get {
             return name; }
            set {
             name = value; }
        }

        public int Age
        {
            
            get {
             return age; }
            set {
             age = value; }
        }

        // 方法
        public void Introduce()
        {
            
            Console.WriteLine($"My name is {
              name} and I'm {
              age} years old.");
        }
    }
}

在这个示例中,Person类包含了两个字段nameage,两个属性NameAge,以及一个方法Introduce

4.3 方法(Method)

方法是类中执行特定任务的代码块。在前面的Main方法详解中已经介绍过Main方法,它是程序的入口点。除了Main方法,类中还可以定义其他方法。例如:

using System;

namespace FirstCSharpProgram
{
            
    class Calculator
    {
            
        public int Add(int a, int b)
        {
            
            return a + b;
        }

        public int Subtract(int a, int b)
        {
            
            return a - b;
        }
    }

    class Program
    {
            
        static void Main()
        {
            
            Calculator calc = new Calculator();
            int result1 = calc.Add(5, 3);
            int result2 = calc.Subtract(5, 3);
            Console.WriteLine($"5 + 3 = {
              result1}");
            Console.WriteLine($"5 - 3 = {
              result2}");
        }
    }
}

在这个示例中,Calculator类定义了两个方法AddSubtract,分别用于执行加法和减法运算。在Main方法中,创建了Calculator类的对象,并调用了这两个方法。

4.4 实操:分析代码结构

打开一个C#项目,仔细观察Program.cs文件中的代码。
分析命名空间的定义和使用,查看是否有嵌套命名空间。
找出类的定义,查看类中包含的字段、属性和方法。
理解Main方法在整个代码结构中的位置和作用。

五、控制台输入输出(Console类)

5.1 控制台输出(Console.WriteLineConsole.Write

Console.WriteLineConsole.WriteConsole类中用于向控制台输出信息的方法。

5.1.1 Console.WriteLine

Console.WriteLine方法用于输出一行文本,并在输出后自动换行。例如:

using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static void Main()
        {
            
            Console.WriteLine("This is a line of text.");
            Console.WriteLine("This is another line of text.");
        }
    }
}

运行这个程序,控制台会输出两行文本,每行文本后面都会有一个换行符。

5.1.2 Console.Write

Console.Write方法用于输出文本,但不会自动换行。例如:

using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static void Main()
        {
            
            Console.Write("This is a line of text.");
            Console.Write(" This text is on the same line.");
        }
    }
}

运行这个程序,控制台会在同一行输出两段文本。

5.2 格式化输出(Console.WriteLine的重载形式)

Console.WriteLine方法有多种重载形式,可以用于格式化输出。例如:

using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static void Main()
        {
            
            string name = "John";
            int age = 25;
            Console.WriteLine("My name is {0} and I'm {1} years old.", name, age);
        }
    }
}

在这个示例中,使用了占位符{0}{1}来表示要插入的变量。{0}对应第一个变量name{1}对应第二个变量age

5.3 控制台输入(Console.ReadLine

Console.ReadLine方法用于从控制台读取用户输入的一行文本,并将其作为字符串返回。例如:

using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static void Main()
        {
            
            Console.WriteLine("Please enter your name:");
            string name = Console.ReadLine();
            Console.WriteLine($"Hello, {
              name}!");
        }
    }
}

运行这个程序,程序会提示用户输入姓名,用户输入后按回车键,程序会读取输入的姓名并输出问候语。

5.4 实操:控制台输入输出练习

5.4.1 输出练习

编写一个程序,使用Console.WriteLineConsole.Write方法输出不同的文本内容,观察输出效果。
使用Console.WriteLine的格式化输出功能,输出一些带有变量的文本。

5.4.2 输入练习

编写一个程序,提示用户输入年龄,然后将输入的年龄转换为整数,并输出用户年龄的两倍。示例代码如下:

using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static void Main()
        {
            
            Console.WriteLine("Please enter your age:");
            string input = Console.ReadLine();
            int age = int.Parse(input);
            int doubleAge = age * 2;
            Console.WriteLine($"Your age doubled is: {
              doubleAge}");
        }
    }
}

六、总结与展望

6.1 总结

本文围绕第一个C#程序展开,详细介绍了Main方法的不同定义形式、执行顺序,深入解析了代码结构中的命名空间、类和方法,以及Console类在控制台输入输出方面的应用。通过这些内容的学习,初学者可以初步了解C#程序的基本组成和运行机制。

6.2 展望

掌握了第一个C#程序的相关知识后,初学者可以进一步学习C#的其他基础知识,如数据类型、控制结构、面向对象编程等。随着学习的深入,还可以尝试开发更复杂的应用程序,如桌面应用、Web应用等。希望读者能够通过不断的实践和学习,在C#编程的道路上取得更大的进步。

七、参考文献

[1] 《C#高级编程》
[2] MSDN(Microsoft Developer Network)上关于C#的文档
[3] 《C#入门经典》

八、附录

8.1 代码汇总

8.1.1 不同形式的Main方法示例
// static void Main()
using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static void Main()
        {
            
            Console.WriteLine("This is a Main method without parameters.");
        }
    }
}

// static void Main(string[] args)
using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static void Main(string[] args)
        {
            
            if (args.Length > 0)
            {
            
                Console.WriteLine("You passed the following arguments:");
                foreach (string arg in args)
                {
            
                    Console.WriteLine(arg);
                }
            }
            else
            {
            
                Console.WriteLine("No arguments were passed.");
            }
        }
    }
}

// static int Main()
using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static int Main()
        {
            
            int result = 10 + 20;
            Console.WriteLine($"The result is: {
              result}");
            return result;
        }
    }
}

// static int Main(string[] args)
using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static int Main(string[] args)
        {
            
            if (args.Length > 0)
            {
            
                int num = int.Parse(args[0]);
                int square = num * num;
                Console.WriteLine($"The square of {
              num} is {
              square}");
                return 0;
            }
            else
            {
            
                Console.WriteLine("Please provide a number as an argument.");
                return 1;
            }
        }
    }
}
8.1.2 代码结构示例
using System;

namespace FirstCSharpProgram
{
            
    namespace SubNamespace
    {
            
        class MyClass
        {
            
            // 类的成员
        }
    }

    class Person
    {
            
        // 字段
        private string name;
        private int age;

        // 属性
        public string Name
        {
            
            get {
             return name; }
            set {
             name = value; }
        }

        public int Age
        {
            
            get {
             return age; }
            set {
             age = value; }
        }

        // 方法
        public void Introduce()
        {
            
            Console.WriteLine($"My name is {
              name} and I'm {
              age} years old.");
        }
    }

    class Calculator
    {
            
        public int Add(int a, int b)
        {
            
            return a + b;
        }

        public int Subtract(int a, int b)
        {
            
            return a - b;
        }
    }

    class Program
    {
            
        static void Main()
        {
            
            Calculator calc = new Calculator();
            int result1 = calc.Add(5, 3);
            int result2 = calc.Subtract(5, 3);
            Console.WriteLine($"5 + 3 = {
              result1}");
            Console.WriteLine($"5 - 3 = {
              result2}");
        }
    }
}
8.1.3 控制台输入输出示例
// 控制台输出示例
using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static void Main()
        {
            
            Console.WriteLine("This is a line of text.");
            Console.WriteLine("This is another line of text.");

            Console.Write("This is a line of text.");
            Console.Write(" This text is on the same line.");

            string name = "John";
            int age = 25;
            Console.WriteLine("My name is {0} and I'm {1} years old.", name, age);
        }
    }
}

// 控制台输入示例
using System;

namespace FirstCSharpProgram
{
            
    class Program
    {
            
        static void Main()
        {
            
            Console.WriteLine("Please enter your name:");
            string name = Console.ReadLine();
            Console.WriteLine($"Hello, {
              name}!");

            Console.WriteLine("Please enter your age:");
            string input = Console.ReadLine();
            int age = int.Parse(input);
            int doubleAge = age * 2;
            Console.WriteLine($"Your age doubled is: {
              doubleAge}");
        }
    }
}

8.2 命令汇总

8.2.1 使用VS Code创建控制台项目
dotnet new console -n FirstCSharpProgram

以上就是关于第一个C#程序的详细内容,希望对初学者有所帮助。在学习过程中,要多动手实践,加深对这些知识的理解和掌握。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容