C#基础
类:
编程中的一种抽象的数据类型(用于表现存储数据的类型)。用于描述一组具有相同属性和行为的对象(例如:狗、猫、鸡羊可看作是一个对象,狗的属性可以是名字、花色、体重,行为可以有吃东西,跑步)。
通过类可以方便的实例化出相同类型的对象(前面举例的狗可以实例化出名字:小白,花色:白色,体重:50kg),并达到重复使用的效果。类还具有面向对象编程的三大特性的操作,封装继承多态。
命名空间:
用于在程序中创建范围。通过命名空间,我们可以避免名称与其他部分代码发生冲突,从而更好地组织和管理代码。在一个命名空间内,我们可以定义变量、函数、类等,这些名称在命名空间以外无法直接访问,需要使用命名空间限定符来访问。命名空间在许多编程语言中都有实现,例如C#、Java、C++等。
1.1 顶级语句
C#9中新增了叫顶级语句的语言特性。创建简单的应用程序时,无需书写类命名空间和Mian()方法声明。直接书写代码就被称之为顶级语句。在引入命令空间System后,可以直接使用Console类。
using System;
//这是开启的第一段代码
//使用控制台Console类调用静态方法 在控制台打印出一段话
Console.WriteLine("Hello World!,你好世界");
1.2 变量
C#提供了声明和初始化变量的不同方式。变量也是一种数据类型,有一个类型和一个随着时间可能会发生改变的值。
using System;
//1、变量的声明(固定类型)
string s1 = "Hello World!"; //字面量声明
string s2 = new string("Hello World!"); //实例化声明
//2、在C#3引入支持类型判断的var关键字
var s3 = "Hello World!"; //可通过右侧值得类型推断出左侧类型
//3、在知道左边类型的情况侠 可以直接使用new()
//可以在书写类成员减少代码量
string s4 = new("hello world!");
1.3 变量的作用域
变量的作用域就是可以访问该代码的具体区域。作用域会遵守以下规则
- 只要类在作用域内,其字段(成员变量)也在作用域内。 在类作用域中两个方法都可以直接使用成员变量。
//动物类
public class Animal
{
//访问修饰符 (特殊修饰符) 变量类型 变量名 = 最基本的成员变量
//名字
private string _name;
public string Name => _name;
//颜色
private string _color;
public string Color => _color
//奔跑
public void Running()
{
//$""可以将变量方便的嵌入字符串中 类似于c语言中的占位符打印
//c语言 int i = 0; scanf("\n", i);
//$"开头{变量名}结尾"
Console.WriteLine($"名叫{name}颜色{color}的动物在奔跑");
}
//吃
public void Eat()
{
Console.WriteLine($"名叫{name}颜色{color}的动物在吃东西");
}
}
- 在到达声明局部变量的块语句或者方法的右花括号之前,局部变量都在作用域内。可以看到定义在方法内部的变量无法在另一个方法中直接访问,这种变量也被称为局部变量,两个speed可以重名因为他们在不同作用域当中。
//动物类
public class Animal
{
//奔跑
public void Running()
{
//奔跑速度
float speed = 10f;
Console.WriteLine($"一只动物在以{speed}的速度奔跑");
}
//吃
public void Eat()
{
//想直接访问Runing方法中的speed会报错:Console.WriteLine($"{speed}");
float speed = 5f;
Console.WriteLine($"一只动物在以{speed}的速度吃东西");
}
}
- 还有一种比较特殊的 for、while或者类似语句中声明的局部变量的作用域是该循环体内部。
//动物类
public class Animal
{
//奔跑
public void Running()
{
//一次跑10圈
//for语句是让花括号内语句重复执行 for(索引;循环判断条件;索引变化) 也可以自由变换for()内的值 这里不做深入
for(int i = 1; i <= 10; i++)
{
Console.WriteLine($"跑了{i}圈");
}
//可以看到这里for中又一次定义了变量名为i的变量
//但因为不在一个作用域中所以不会报错 上面for循环中的i 与下面的i也不是同一个变量
for(int i = 10;i >= 1; i--)
{
Console.WriteLine($"这里的i值:{i}")
}
}
}
1.4 常量
在写代码时会出现一些从来不曾也不需要改变的值,可以将其定义成一个常量。会使用到一个关键字const
被const定义的变量出现的每一个地方,编译器都将使用常量值替换它。文章来源:https://www.toymoban.com/news/detail-816611.html
//这里面的值不会发生改变
const int a = 100;
这个局部字段每次出现时,编译器都会把它替换为它的值。在版本变化时,如果在库中声明了一个常量,在应用程序中使用该常量,就需要重新编译应用程序来使用新值,否则可能会发生值不相同。可能还需要考虑到在版本变化时也不会改变的值才去使用const关键字
常量的特点:文章来源地址https://www.toymoban.com/news/detail-816611.html
- 常量必须在声明时初始化。制定了其值后,就不能改写。
- 常量的值必须能在编译时计算出来。因此不能使用变量值初始化常量,只有只读变量可以但也不推荐。
- 常量总是隐式静态的,但不同于Java语言在c#语法中,不必(实际不允许)在常量声明中包含修饰符static。
使用常量的好处 - 使用更易理解的名字替代了不会更改的字符串,使其更加容易理解
//需要读取的文件地址
const string LOAD_PATH = "C/test/test1.txt";
- 常量更容易避免程序出现错误。如果在声明常量的位置以外的某个地方将值赋给常量,编译器会标记错误。
只读变量:如果一个实例的某些值在初始化后就不会再发生改变,那么就可以使用readonly字段声明只读。
//动物类
public class Animal
{
//又是老朋友动物类
//名字
private readonly string _name; //不会再发生改变的值
public string Name => _name;
}
到了这里,关于Unity C#编程基于《C#高级编程第12版》——C#基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!