当前位置:   article > 正文

Unity C#编程基于《C#高级编程第12版》——C#基础_c高级编程第12版pdf下载

c高级编程第12版pdf下载

C#编程基于《C#高级编程第12版》——C#基础(1)

C#基础


编程中的一种抽象数据类型(用于表现存储数据的类型)。用于描述一组具有相同属性和行为的对象(例如:狗、猫、鸡羊可看作是一个对象,狗的属性可以是名字、花色、体重,行为可以有吃东西,跑步)。
通过类可以方便的实例化出相同类型的对象(前面举例的狗可以实例化出名字:小白,花色:白色,体重:50kg),并达到重复使用的效果。类还具有面向对象编程的三大特性的操作,封装继承多态。

命名空间
用于在程序中创建范围。通过命名空间,我们可以避免名称与其他部分代码发生冲突,从而更好地组织和管理代码。在一个命名空间内,我们可以定义变量、函数、类等,这些名称在命名空间以外无法直接访问,需要使用命名空间限定符来访问。命名空间在许多编程语言中都有实现,例如C#、Java、C++等。

1.1 顶级语句

C#9中新增了叫顶级语句的语言特性。创建简单的应用程序时,无需书写类命名空间和Mian()方法声明。直接书写代码就被称之为顶级语句。在引入命令空间System后,可以直接使用Console类。

using System;
//这是开启的第一段代码 
//使用控制台Console类调用静态方法 在控制台打印出一段话
Console.WriteLine("Hello World!,你好世界");
  • 1
  • 2
  • 3
  • 4

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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}的动物在吃东西");
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 在到达声明局部变量的块语句或者方法的右花括号之前,局部变量都在作用域内。可以看到定义在方法内部的变量无法在另一个方法中直接访问,这种变量也被称为局部变量,两个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}的速度吃东西");
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 还有一种比较特殊的 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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

1.4 常量

在写代码时会出现一些从来不曾也不需要改变的值,可以将其定义成一个常量。会使用到一个关键字const
被const定义的变量出现的每一个地方,编译器都将使用常量值替换它。

//这里面的值不会发生改变
const int a = 100
  • 1
  • 2

这个局部字段每次出现时,编译器都会把它替换为它的值。在版本变化时,如果在库中声明了一个常量,在应用程序中使用该常量,就需要重新编译应用程序来使用新值,否则可能会发生值不相同。可能还需要考虑到在版本变化时也不会改变的值才去使用const关键字
常量的特点:

  • 常量必须在声明时初始化。制定了其值后,就不能改写。
  • 常量的值必须能在编译时计算出来。因此不能使用变量值初始化常量,只有只读变量可以但也不推荐。
  • 常量总是隐式静态的,但不同于Java语言在c#语法中,不必(实际不允许)在常量声明中包含修饰符static。
    使用常量的好处
  • 使用更易理解的名字替代了不会更改的字符串,使其更加容易理解
//需要读取的文件地址
const string LOAD_PATH = "C/test/test1.txt";
  • 1
  • 2
  • 常量更容易避免程序出现错误。如果在声明常量的位置以外的某个地方将值赋给常量,编译器会标记错误。
    只读变量:如果一个实例的某些值在初始化后就不会再发生改变,那么就可以使用readonly字段声明只读。
//动物类
public class Animal
{
	//又是老朋友动物类
	//名字	
	private readonly string _name;	//不会再发生改变的值
	public string Name => _name;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/626421
推荐阅读
相关标签
  

闽ICP备14008679号