- .net与C#
- 命名规范
- 字符串中的转义
- 循环语句于应用方式
- 程序结构
- 常量、枚举、结构体、数组
- 方法的应用(方法中的参数)
- 构造函数
- 字符串
- 结构体和类
- ArrayList(集合)、Hashtable(哈希表)、List(泛型集合)、Dictionary(字典)
- 文件管理
.net与C#
.net:一般指.Net Framework框架,一种平台,一种技术。
C#:一种编程语言,可以开发基于.net平台的应用
.net是如何实现语言无关性?
.net 平台支持很多语言,常见有:C#、VB、C++、F#、J#(Java)等
但是实际上经过编译之后,统一生成了中间语言IL”,类似汇编,就因为这样,才可以在以上所有的语言中相互引用dll,因为实际是都是一种语言“IL”
在执行的时候,实际上.net会把IL先给编译成机器码,也就是二进制,这才是真正的可执行代码。
命名规范
变量名 | 首字母小写,其他单词首字母大写:writeWord |
类名 | 首字母大写,例如:Class |
参数 | 首字母小写,其他单词首字母大写,例如:strFlag |
类字段 | 首字母小写,前面加_,例如:_name |
类属性 | 首字母大写,例如:Name |
类方法 | 首字母大写,其他单词首字母大写,例如:SayHello() |
常量名 | 首字母大写,例如:Pi |
接口 | 首字母要写大写的I,例如: interface ITest |
事件 | 首字母要大写,例如:DoTask() |
命名空间 | 首字母要大写,例如:MyTest |
\+ | 可以在代码中显示出+号,因为+是特殊字符 |
\n | 表示换行 |
\b | 表示退格,会有两种情况,后面有内容,才会掩藏前面的内容,如果没有内容,就不会隐藏,下游表移到前面的位置 |
\\ | 表示\,因为\是特殊字符 |
\t | 表示的是水平制表符 |
\" | 表示一个双引号 |
@ | 会让后面的转义符失效,从而找到路径,避免麻烦的去添加\ |
for循环 | 知道循环次数 |
while循环 | 先判断,在执行 |
do-while循环 | 先执行,在判断 |
顺序结构 | 语句顺序执行 |
分支结构 | 语句在满足条件下执行 |
循环结构 | 语句在满足条件下循环执行多次 |
名称 | 格式 | 应用 |
常量 | const 类型 常量名 =常量值 | 应用于确定的值 |
枚举 | 访问修饰符 enum 枚举名 | 限定了变量的取值范围 |
结构体 | 访问修饰符 struct 结构名 | 一次声明多个不同类型的变量 |
数组 | 数据类型[] 变量名=new 数据类型[]{} | 一次声明多个相同类型的变量 |
//常量
const int num=10;
//枚举
public enum Gender
{
男,
女
}
public struct Person
{
public string _name;
public int _age;
public Gender _gender;
}
class Program
{
static void Main(string[]args)
{
person zsPerson;
zsPerson._name="张三" ;
zsPerson._age="18";
zsPerson._gender=Gender.男;
}
}
//数组
int[]nums=new[]{1,2,45,7,7}; //声明一个数组,数组中的元素为1,2,45,7,7,有索引
名称 | 作用 | 要求 |
方法的重载 | 可以在不改变原方法的基础上,新增功能 | 方法名相同,但参数类型或个数必须有所不同 |
out参数 | 内部为外部变量赋值,out一般用在函数需要有多个返回值的场所 | 1.如果方法的参数用out修饰了,那么这个参数,必须在方法里进行赋值 2.在方法外,可以不辅初值 3.参数前面必须加out 4.传地址(地址改变,值就会改变) |
ref参数 | 可以把值传到方法里,又可以把值传到方法外 | 1.ref用的时候必须要给这个变量赋初值 2.传地址(地址改变,值就会改变) 3.传出去什么值,就是什么值 |
//out参数和ref参数和一般参数
static void Main(string[]args)
{
int num1; //用out,可以不用赋初值
int num2=90; //没有用out和ref,必须赋初值
int num3=90; //用ref,必须赋初值
int num4=90; //没有用out和ref,必须赋初值
int numSum1=Show(out num1,ref num3)
int numSum2=Show(num2,num4)
console.WriteLine(num1); //num1=90
console.WriteLine(num2); //num2=200
console.WriteLine(numSum2); //numSum2=180
}
public static int Show(out int number1,int number2,ref int num3,int number4)
{
number1=90; //out,方法里面赋值,外面的值传不进来,只能将下面的值传出去
numSum=number2+number4; //一般的将值传进来,但是外面的变量的值不会变,要传出去一个新得变量,外面也应该有一个新的变量去接受
number3=200; //ref,外面的值可以传进来,方法里面的值可以传出去,这个的返回值就是200
}
public static int Show(int number2,int number4)
{
numSum=number2+number4; //一般的将值传进来,但是外面的变量的值不会变,要传出去一个新得变量,外面也应该有一个新的变量去接受
}
类 | 对象 |
模板,抽象的概念 | 看得见,摸得到,特质的,具体的 |
不占内存 | 占内存 |
构造函数
- 用来创建对象,并且可以在构造函数中对对象进行初始化
- 构造函数是用来创建对象的特殊方法,方法名和类名一样,没有返回值,连void都不用
- 构造函数可以有参数,new对象的时候传递参数即可
- 如果不指定构造函数,则类有一个默认的无参构造函数,如果指定了构造函数,则不在有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。
- 构造函数可以重载,也就是有多个参数不同的构造函数
//构造函数
public infoStudent(string name,string sex,int age)
{
this._name = name; //this是指示代词
this._sex = sex;
this._age = age;
}
//主程序调用
static void Main(string[] args)
{
//赋值
infoStudent xiaolan = new infoStudent("小兰", "女", 16);
//调用类中的方法,根据赋值内容,显示出相应的内容
xiaolan.DaZhaoHu();
}
字符串
- string可以看作是char的只读数组。char c=s[1];例子:遍历输出string中的每个元素
- C#中字符串有一个重要特性:不可变性,字符串一旦声明就不在可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改
- 如果要对char进行修改,那么就必须创建一个新的字符串,用s.ToCharArray()方法得到字符串的char数组,对数组进行修改后,调用new string(char[])这个构造函数来创建char数组的字符串。一旦字符串被创建,那么char数组的修改也不糊造成字符串的变化。
string void Main(string[]args)
{
string text="哈哈,又变帅了";
char[]chs=text.ToCharArray();
chs[5]='酷';
string str=new string (chs);
console.WriteLine(str);
//显示-哈哈,又变酷了,只是将一个新的字符串显示出来了,原来的字符串没有改变
}
结构体 | 类 |
如果写构造函数,那么就要把结构中所有的字段全部赋值(在构造函数的参数写) | 如果写构造函数,类中的字段不需要全部赋值 |
有默认无参的构造函数,写一个有参的构造函数,默认的无参数的构造函数还在 | 有默认无参的构造函数,写一个有参的构造函数,默认的无参数的构造函数不在 |
值类型 | 引用类型 |
值存在栈上 | 栈上存的是地址,值在堆上,地址一样,值一样 |
struct | class |
//类
public class person(string name,int age)
{
this.Name = name;
this.Age = age;
}
//结构体,也有字段和属性和方法
public struck person(string name,int age)
{
this.Name = name;
this.Age = age;
}
总结ArrayList(集合)、Hashtable(哈希表)、List(泛型集合)、Dictionary(字典):https://blog.youkuaiyun.com/lclcsdnblink/article/details/86539592
文件管理:https://blog.youkuaiyun.com/lclcsdnblink/article/details/86548808