今天继续学习C#的相关知识…
C# 的数组(Array)的属性和方法
小补充: array类的还有LastIndexOf() 返回某元素的最后一次出现的位置下标
C#的关键字ref 和out
其作用其实就是 引用传递给方法 (直接看实例 便于理解)
using System;
namespace OutputParameterPassing
{
class Program
{
//需要返回两个参数, 一个是数组元素的最大值, 另一个是最大值的索引
static int MaxNum(int[] arr, out int index)
{
int maxNum = arr[0];
index = 0;
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] > maxNum)
{
maxNum = arr[i];
index = i;
}
}
return maxNum;
}
static void Main(string[] args)
{
int[] arr = { 1, 2, 3, 12, 13, 14, 15, 16, 17, 4, 5, 6, 7, 8, 9, };
int max;
Console.WriteLine("数组arr最大的元素值是{0} , 其索引值是{1} ",MaxNum(arr,out max),max);
}
}
}
运行结果:
所有类型和类型成员都具有可访问性级别
注释: internal的英文含义是“内部的”,而这个“内部的”的确切含义,是指“同一程序集”的内部,而非“同一命名空间”的内部。也就是说,internal修饰的方法或者属性,只要是在同一个程序集中的类都可以访问,如果二者不在同一命名空间,只要使用using引用上相应的命名空间即可。
类的成员
C#的get和set访问器的理解
C#的get set的理解
取属性时,执行get访问器的代码块;向属性赋予新值时,执行set访问器的代码块。通常将不带set访问器的属性视为只读;将不带get访问器的属性视为只写;将具有以上两个访问器的属性视为读写。get和set的作用很强大 , 最好能理解应用
分部类
- 将同一个类编写在多个文件中,类的各个文件名不同,类名相同,类名前加partial关键字,这种类型叫做分部类。在分部类中可以建立分部方法,也需要在方法名前加关键字partial。分部方法只能将方法分成两部分,即声明部分和实现部分。分部方法必须在分部类或分部结构中声明,并且必须私有访问
- 分部方法有着严格的限制:
分部类的简单实例
using System;
namespace PartialDemo
{
partial class Pargam
{
partial void Write(); //分部方法的声明
partial void Write() //分部方法的实现
{
Console.WriteLine("这是一个分部方法");
}
}
partial class Pargam
{
static void Main()
{
//调用分部方法
Pargam pargam = new Pargam();
pargam.Write();
}
}
}
运行结果:
C#的构造函数和析构函数
其效果类似于C/C++的 构造函数和析构函数
C#的结构体
在C#中的结构与传统的C或C++中的结构不同。C#中的结构具有以下特点:
- 结构可带有方法、字段、索引、属性、运算符方法和事件。
- 结构可定义构造函数,但不能定义析构函数。
- 与类不同,结构不能继承其他的结构或类。
- 结构不能作为其他结构或类的基础结构。
- 结构可实现一个或多个接口。
- 结构成员不能指定为abstract、virtual或protected。
- 当用户使用new操作符创建一个结构对象时,会调用适当的构造函数来创建结构。与类不同,结构可以不使用new操作符即可被实例化。
- 如果不使用new操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用