一、编写第一个C#程序
(1)打开visual stdio 2022 程序,点击“创建新项目”,选择“控制台应用”,点击“下一步“
(2)命名项目并修改路径,点击”下一步“
(3)选择框架,可以选择版本较低的框架,兼容性较高。选择”不使用高级语句“,点击”创建“
(4)在Main方法中输入代码,编写"Hello world"程序
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
}
以上是visual stdio2022自带的程序,ctrl+shift+B编译程序,点击运行。运行结果:
二、C#程序结构
C#程序结构大体可以分为命名空间、类、Main()方法、标识符、关键字、语句和注释等
1.命名空间(namespace)
C#程序是利用命名空间组织起来的。命名空间可以类比于python中的包(package),都用于组织和管理代码的结构,以防止命名冲突并提供更好的代码组织和模块化。如果要调用某个命名空间中的类或者方法,需要使用using指令引入命名空间:
using 命名空间名;
命名空间的彼此调用,先放代码:
using System;
using MySpace;
namespace ViewSpace
{
class Program
{
static void Main(string[] args)
{
Model model = new Model();
model.GetChar();
}
}
}
namespace MySpace
{
class Model
{
public void GetChar()
{
Console.WriteLine("im a CSUer");
Console.ReadLine();
}
}
}
在上面的代码中,建立了一个命名空间MySpace,其中定义了Model类,在项目中using MySpace引入该命名空间,然后在ViewSpace命名空间中实例化MySpace中定义的Model类,然后调用此类中的GetChar方法。输出结果:
System也是一个命名空间,其中包含了很多常用的类,如数据类型、I/O 操作、异常处理、数学运算等。通过使用using System;
,可以避免在每个使用 System 命名空间中的类型时都需要写全限定名。举个例子,如果没有使用using System ,上述代码可改写为:
using MySpace;
namespace ViewSpace
{
class Program
{
static void Main(string[] args)
{
Model model = new Model();
model.GetChar();
}
}
}
namespace MySpace
{
class Model
{
public void GetChar()
{
System.Console.WriteLine("im a CSUer");
System.Console.ReadLine();
}
}
}
2.类
在计算机编程中,类是一种抽象数据类型的概念,用于描述具有相似属性和行为的对象的模板或蓝图。类是面向对象编程的基本概念之一,允许我们通过创建类来定义对象的结构和行为。
C#是完全面向对象的语言,因此C#中的所有语句必须位于类内,所以类是C#语言的核心和基本构成模块。
使用任何新的类之前必须声明它,一个类一旦被声明,就可以当作一种新的类型来使用。在C#中声明类的方式如下:
[类修饰符] class [类名] [基类或接口]
{
[类体]
}
区别于其他语言,C#中的类可以使用多种修饰符来控制其访问性、继承性和其他特性。以下是一些常见的类修饰符:
- public: 表示该类对所有其他类都是可见的,可以在任何地方访问。
- private: 表示该类对自身的类是可见的,其他类无法访问。
- protected: 表示该类对自身和其子类是可见的,但对其他类是不可见的。
- internal: 表示该类对其所在的程序集是可见的,但对其他程序集是不可见的。
例如,声明一个简单的类:
private class MyProg
{
}
3.Main()方法
Main()函数是程序的入口点,任何程序都必须包含Main()函数,在其他语言中也都有类似于Main()的函数。
C#中所有的Main()方法都必须是静态的。由于C#完全面向对象,Main()方法也不能脱离类而单独出现,也是类的一个成员。由于程序启动时还未创建类对象,因此Main()方法必须是静态的,可以不依赖于类对象而执行。
如果未注明Main()方法的访问级别,则默认级别为private。
在C#中,静态方法是属于类而不是类的实例的方法。通过使用
static
关键字声明,静态方法在调用时不需要创建类的实例,可以直接通过类名访问。静态方法通常用于执行与类本身相关的操作,而不涉及类的实例的状态。
4.输入与输出
在上面创建的代码中,包含以下内容:
Console.WriteLine("im a CSUer");
Console.ReadLine();
它们都用到了Console类,用于在控制台中输出和读取内容。
下面是Console类中输入输出常见的方法:
Write() 和 WriteLine(): 用于在控制台上输出字符串。WriteLine() 还会在输出之后添加一个换行符。
WriteFormat() 和 WriteLineFormat(): 用于格式化输出字符串。示例代码:
string name = "John";
int age = 25;
Console.WriteLineFormat("Name: {0}, Age: {1}", name, age);
在该语句中,{0}和{1}用作占位符,输出时用后面的两个参数分别替代两个占位符。
ReadLine(): 用于从控制台读取一行文本,并返回一个字符串。
Read(): 用于从控制台读取一个字符,并返回一个整数,表示字符的 ASCII 值。
ReadKey(): 用于读取单个按键信息,并返回一个 ConsoleKeyInfo
对象,该对象包含有关按键的信息。