语法规范:
骆驼命名: 首字母小写,单词后字母大写 使用在普通变量
帕斯卡命名: 首字母大写,单词后字母小写 使用在方法名或者类名
面向对象的三大特性:封装、继承、多态。(类是模具,创建对象的模具,抽象的)
根据对象分析有几个类
构造函数:构造函数是可以重载的,构造函数特点:1.方法名和类名必须一样2.构造函数不能有任何返回值3.构造函数访问修饰一般是public
当类的构造函数的访问修饰符如果是private/protected等,不能再类外部访问,所以也就不能再类外部通过new关键字来创建对象
变量的 作用域:类的成员变量,声明的时候没有赋值,则会有默认值数字类型是0,string 是null,bool是false
.net和c#关系:
.net是平台,c#是语言; c#语言可以通过.net平台来编写 部署 运行.net应用程序 c#是专门为.net研发的一门语言
.net平台的重要组成:
1.FCL-框架类库(微软事先定义好的类的集合),2.CLR-公共语言运行时(创建 部署 运行.net程序的必备环境)
解决方案:是用来管理项目的。(多个项目构成一个解决方案。)
数据类型就是在内存中开辟空间大小的模板
数据类型转换:
隐士转换:1数据类型必须兼容,2.目标类型要大于原类型 convert转换其实就是调用int.Parse()方法,只不过在转换之前判断值是否为null
值类型:数值类型 (char,bool,结构)直接将数据存储在栈里的变量的空间里面
引用类型: string 数组 类
变量声明在栈里面 真实的对象存储在堆里面 栈里面的变量存储 的是对象的地址
二维数组:声明二维数组 :int[,]=new int[2,5],
//获取二维数组的值
for(int i=0;i<arr.GetLength(0);i++)
{
for(int j=0;j<arr.GetLength(1);i++)
{
Console.WriteLine(arr[i,j]);
}
}
交错数组:
交错数组的本质是一个一维数组 只不过这个一维数组的 元素又是数组
声明交错数组:int[][]arr=new int[3][];
方法的重载:
1在同一个作用域下 ,不能定义相同名字的成员。
什么情况下可以构成方法重载:
1.方法的名字相同2。方法参数的个数或者类型或者顺序不一样。3必须在同一个类中
可变参数:
参数被params修饰就叫可变参数,1.params只能修饰一维数组。
2.给可变参数赋值的时可以直接传递数组的元素。3.在调用的时候会自动将这些元素封装为一个数组,并将数组传递4.可变参数必须放在参数列表的最后。
ref和out
ref修饰方法的参数 1在调用的时候必须在变量前面加上ref关键字,只能传递变量不能传递常量,传递的时候 不是传递变量的值,而是传递变量的地址
out也是传递变量的地址,out必须在方法内对其赋值,ref可以修改其值也可以不修改
什么时候用out呢?
一个方法中有多个返回值(如返回一个最大值和最小值)
out侧重于输出 ref侧重于修改
out 在传递之前可以不赋值 因为在方法中肯定会为out赋值
ref在传递之前必须要有值 因为方法中有可能会用到这个参数的值
ref修饰方法参数时,在调用的时候必须在变量前面加上ref关键字,只能传递变量,不能传递常量
骆驼命名: 首字母小写,单词后字母大写 使用在普通变量
帕斯卡命名: 首字母大写,单词后字母小写 使用在方法名或者类名
面向对象的三大特性:封装、继承、多态。(类是模具,创建对象的模具,抽象的)
根据对象分析有几个类
构造函数:构造函数是可以重载的,构造函数特点:1.方法名和类名必须一样2.构造函数不能有任何返回值3.构造函数访问修饰一般是public
当类的构造函数的访问修饰符如果是private/protected等,不能再类外部访问,所以也就不能再类外部通过new关键字来创建对象
变量的 作用域:类的成员变量,声明的时候没有赋值,则会有默认值数字类型是0,string 是null,bool是false
.net和c#关系:
.net是平台,c#是语言; c#语言可以通过.net平台来编写 部署 运行.net应用程序 c#是专门为.net研发的一门语言
.net平台的重要组成:
1.FCL-框架类库(微软事先定义好的类的集合),2.CLR-公共语言运行时(创建 部署 运行.net程序的必备环境)
解决方案:是用来管理项目的。(多个项目构成一个解决方案。)
数据类型就是在内存中开辟空间大小的模板
数据类型转换:
隐士转换:1数据类型必须兼容,2.目标类型要大于原类型 convert转换其实就是调用int.Parse()方法,只不过在转换之前判断值是否为null
值类型:数值类型 (char,bool,结构)直接将数据存储在栈里的变量的空间里面
引用类型: string 数组 类
变量声明在栈里面 真实的对象存储在堆里面 栈里面的变量存储 的是对象的地址
二维数组:声明二维数组 :int[,]=new int[2,5],
//获取二维数组的值
for(int i=0;i<arr.GetLength(0);i++)
{
for(int j=0;j<arr.GetLength(1);i++)
{
Console.WriteLine(arr[i,j]);
}
}
交错数组:
交错数组的本质是一个一维数组 只不过这个一维数组的 元素又是数组
声明交错数组:int[][]arr=new int[3][];
方法的重载:
1在同一个作用域下 ,不能定义相同名字的成员。
什么情况下可以构成方法重载:
1.方法的名字相同2。方法参数的个数或者类型或者顺序不一样。3必须在同一个类中
可变参数:
参数被params修饰就叫可变参数,1.params只能修饰一维数组。
2.给可变参数赋值的时可以直接传递数组的元素。3.在调用的时候会自动将这些元素封装为一个数组,并将数组传递4.可变参数必须放在参数列表的最后。
ref和out
ref修饰方法的参数 1在调用的时候必须在变量前面加上ref关键字,只能传递变量不能传递常量,传递的时候 不是传递变量的值,而是传递变量的地址
out也是传递变量的地址,out必须在方法内对其赋值,ref可以修改其值也可以不修改
什么时候用out呢?
一个方法中有多个返回值(如返回一个最大值和最小值)
out侧重于输出 ref侧重于修改
out 在传递之前可以不赋值 因为在方法中肯定会为out赋值
ref在传递之前必须要有值 因为方法中有可能会用到这个参数的值
ref修饰方法参数时,在调用的时候必须在变量前面加上ref关键字,只能传递变量,不能传递常量