-
c#的值类型存储在栈里,而引用类型的引用存储在栈里,数据存储在堆里。
-
c#new关键字为对象分配一个引用而非存储数据。
-
引用类型关键字ref:
For example:c#
Int y;数组
void mymethod(ref int y);函数
Mymethod(ref y);this
-
输出参数out:用于从方法体内把数据传出到调用代码。语法与ref相似。
Out和Ref相似:spa
- 1).ref必须将引用值初始化才能在方法内用不然报错不能空引用。对out而言可在方法内进行值的初始化。(当out参数的值不会传到out
参数中须要显示传递)。对象
- 2) .out适合用在须要retrun多个返回值的地方,而ref则用在须要被调用的方法修改调用者的引用的时候。
-
参数数组须要params关键字:
给参数数组提供形参:排序
Void Test(params int []test);继承
test(1,2,3);索引
int[]a={1,2,3};内存
test(a);
-
命名参数:
将函数形参位置调换入参数。
Int test(int a,int b,int c){};
test(a:5,c:6,b:7);
-
静态变量static(定义后不能访问类的实例成员,但能被实例成员访问) 常量const:
静态产量声明后可透过直接经过类名使用,而const声明的变量必须在一开始初始赋值而且不能更改。
-
属性:表明类的实例或类总的一个数据项的成员。使用属性看起来很是像写入或读取一个字段,语法是相同的。
属性特征:
- 1):它是命名的类成员;
- 2) :它能够被赋值和读取,然而和字段不一样,属性是一个函数成员;
- 3) :它不为数据存储分配内存,它执行代码。
- 4) :属性是指定的一个组俩个分配的、称为访问器的方法。
Set访问器为属性赋值,get访问器从属性获取值。
set访问器:拥有一个单独的、隐式的值参,名称为value,与属性类型相同,拥有一个返回类型void。
get访问器:没有参数,拥有一个与属性类型相同的返回类型。
自动属性实现:
public int such{
get;set;}必须+封号
-
readonly修饰符:
做用相似const,一旦被设置就不能改变。Const字段只能在字段声明时初始化,而readonly能够先声明随后初始化。
10.索引器:
相似属性,属性一般表示单独数据成员,索引器一般表示多个数据成员。
索引器没有名称。在名称获得位置是关键字this。参数列表在中括号内,参数列表必须声明一个参数。
访问器的访问修饰符有几个限制:
- 1)、仅当成员既有get也有set访问器时;
- 2)、虽然俩个访问器都必须出现,但它们只能有一个修饰符;
- 3)、访问器的访问修饰符必须比成员的访问级别有更严格的限制性。
public->protected internal->protected->private->internal
returnType this[Type type1]{
get{
}
set{}
}
11.分布类型和分布方法修饰符:partial。(声明东西必须相同)
partial class Myclass{
partial void PrintSum(int a,int b);
public void add(int a,int b){
Console.Write({0},a+b);}
}
Partial class Myclass{
partial void PrintSum(int x ,int y){
Console.WriteLine(“Sum is{0}”,x+y);
}
class Program{
Static void Main(){
var ma=new Myclass();
mc.add(5,6);
}}
12.数组继承的有用成员 继承自System.Array
Rank 属性 实例 获取数组的维度
Length 属性 实例 获取数组中全部维度的元素总和
GetLength 方法 实例 返回数组的指定维度的长度
Clear 方法 静态 将某一范围内的元素设置为0或null
Sort 方法 静态 在一维数组中对元素进行排序
BinarySearch 方法 静态 使用二进制搜索,搜索一维数组中的值
Clone 方法 实例 进行数组的浅复制——对于值类型数组和引用类型数组,都只复制元素
IndexOf 方法 静态 返回一维数组碰见第一个值
Reverse 方法 静态 反转一维数组中的某一范围的实例
GetUpperBound 方法 实例 获取数组维度上限