C#编程
2023-08-04 08:59:12   29  举报             
     
         
 AI智能生成
  5555555555
    作者其他创作
 大纲/内容
  开始
    
     Day1
    
     创建项目
  
     项目结构
  
     解决方案里创建新项目
  
     程序集信息  
     引用
  
     配置文件
  
     程序入口  
     解决方案和项目
  
     Debug和Release  
     Day2    
     .net支持混合语言  
     为什么可以用混合代码开发  
     Day5    
     Parse类型
    
     适用于string转换成其他类型 只适合值类型    
     int intNumber1=int.parse(stingNumber);  
     数字类型转换 string的内容 要符合数字内容  
     Convert类型转换 
    
     万能类型转换  任意类型之间转换 但是转换的内容要符合转换后类型的标准,否则抛出异常    
     int intNumber7 = Convert.ToInt32(stringNumber7);  
     算数运算符    
     + - *  /   % ++ --
  
     关系运算符    
     > < >=  <=    ==    !=  
     ==  等于   != 不等  
     Day6    
     逻辑运算符(  &&   ||   !)    
     && "与"且运算符    
     左右两边的条件都成立true 结果才为true 如果有一个false 结果为false  
     || “或”运算符    
     左右两边的条件有一个true 结果才为true 两个边都为false 结果为false  
     "!"  非 取反运算符    
     ! 非  取反运算符   对于条件的取反  true的反向为fasle    false的反向为true  
     混合使用看优先级  
     赋值运算符 =    +=  -=      *=  /=  %=  
     if语句   条件判断语句    
     if(条件){条件成立 执行代码逻辑}  
     while    
     whlie(条件){ 循环代码}  
     do..while    
     先执行一次循环  如果条件成立继续循环 反之 循环终止  
     Day7
    
     for循环    
     for(int i=0; i<j;i++)
    
     int i = 0 条件的初始变量  
     i < j 循环的条件  条件成立循环执行 反之循环终止  
     i++ 每次循环结束后 初始变量的自增或自减  
     break作用    
     break关键字用于循环体中    作用:  终止当前循环体  
     continue作用    
     continue终止当次循环进入下次循环  
     goto语句    
     跳转语句  
     switch语句    
     条件分支语句 类似if语句    
     switch()中的变量可以是整形.string.bool.char.枚举或相应可以为null的类型  
     每个case标签后是常量表达式(定值)的值不必连续(case0 后面可以跟 case2不一定是case1)
也不必按特定顺序排列,但不能相同,否则会出现错误。
    也不必按特定顺序排列,但不能相同,否则会出现错误。
 default标签可选,意思是其余的结果。 类似与else  
     break语句的作用是在case与case之间中断程序  
     访问修饰符    
     作用:所有类型和类型成员都具有可访问性级别  
     分类    
     ①public : 所有对象都可以访问 。  
     ②internal : 同一个程序集的对象可以访问。  
     ③private : 对象本身在对象内部可以访问;。  
     ④protected : 只有该类对象及其子类对象可以访问。  
     ⑤protected internal :访问限于当前程序集或派生自包含类的类型  
     ⑥private protected:该类型或成员可以通过从 class 派生的类型访问  
     C#的默认修饰符    
     类、结构体的默认修饰符是internal。  
     类中所有的成员默认修饰符是private  
     接口默认修饰符是internal  
     接口的成员默认修饰符是public  
     枚举类型成员默认修饰符是public。  
     委托的默认修饰符是internal。  
     Day8    
     .方法(函数)    
     作用:方法是包含一系列语句的代码块。方法必须在类或结构中声明  
     优点:减少代码重复率 方法体现了CShap语言的封装性  
     定义方法的格式: 访问修饰符 静态或非静态 返回值类型  方法的名字(形式参数){ 封装的代码 }  
     自定义方法 分为声明方法 和调用方法    
     方法的调用:    
     1.方法调用要放在方法内部  
     2.可以通过入口函数 调用其他自定义方法    
     ① 调用其他类的私有方法(private) 不能直接调用  
     ② 调用其他类的共有方法可以直接调用  
     3.如果在其他自定义的函数中调用 不能执行  
     4.方法可以被重复调用  
     静态和非静态定义方法    
     标识staitc的方法是静态方法  反之是非静态方法    
     区别1 :调用方式不一样    
     静态方法调用使用      类名.静态方法  
     非静态方法调用使用    类的对象.非静态方法  
     调用其他类的共有静态方法 必须要标识类的名字    
     在本类的静态方法中调用 静态方法  使用本类类名调用 也可以省略    
     ClassTest.ClassTestMothod3();  
     在本类的静态方法中调用 非静态方法 必须要定义本类的对象 来调用方法    
     ClassTest classTest  =   new ClassTest();
classTest.ClassTestMothod5();
    classTest.ClassTestMothod5();
 调用其他类的共有非静态方法 必须要使用其他类对象的名字    
     在本类的非静态方法中调用 静态方法 使用本类类名调用 也可以省略    
     ClassTestMothod4();  
     在本类的非静态方法中调用 非静态方法 使用this调用 也可以省略    
     this.ClassTestMothod5();  
     返回值类型    
     分类    
     无返回值类型和有返回值类型    
     返回值类型  代表方法的结果的一个出口  所有的类型(int double float.....) 都可以做为返回值类型  
     "ClassTest"也是一种数据类型    
     public static ClassTest ClassTestMothod3()
{
return new ClassTest { };
}
    {
return new ClassTest { };
}
 参数    
     参数是什么    
     访问修饰符 静态或非静态 返回值类型  方法的名字(形式参数){ 封装的代码 }
public static long ClassTestMothod3( 形式参数 ) { 封装的代码 }
    public static long ClassTestMothod3( 形式参数 ) { 封装的代码 }
 参数分为    
     形式参数 (形参) 和实际参数(实参)    
     ① 定义方法中的参数是形参   调用方法中的参数实参  
     ② 形参的个数是无限个  形参的类型 可以是任意类型   和返回值类型一致  
     参数传递形式    
     分为:值参数 和 引用参数    
     值参数    
     ①参数传递的默认方式  
     ②当调用一个方法时,会为每个值参数创建一个新的存储位置 相当于copy了一个值  
     ③当形参的值发生改变时,不会影响实参的值,从而保证了实参数据的安全  
     引用参数    
     ①引用参数是一个对变量的内存位置的引用 不会创建一个新的存储位置  
     ②参数关键字 ref    
     public static void ProgramMothod(ref int a, ref int b)  
     输出参数传递out  让方法具有多个返回值结果的参数  
     Day9    
     空类型(Null)    
     特点    
     表示不引用任何对象的空引用,没有创建内存空间,存放的是空引用指针  
     Null类型是System.Nullable<T>这个struct的类型  
     对于值类型 赋值不能直接为null    引用类型可以  
     nul是l引用类型变量的默认值  
     对于值类型 赋值不能直接为nul l如果想要值类型可以赋值null    
     方法一  Nullable<int> a = null;    Nullable<float> floatA = null;  
     方法二  int? intNumber = null; //  Nullable<int> a = null  
     null和字符串空值和字符串空格的区别  
     双问号 ??(合并运算符)    
     用于判断一个变量在为 null 的时候返回一个指定的值    
     double? num1 = null;    num3 = num1 ?? 111.11;   result:111.11
  
     不可变一维数组    
     不可变数组是一个存储相同类型元素的固定大小的顺序集合  //安全性  
     特点:    
     数组属于引用类型  
     数组只能包含类型相同的元素  
     数组通过下标(索引值)标记元素  
     格式:    
     声明不可变一维数组:    
     datatype[] arrayName;    
     datatype 用于指定被存储在数组中的元素的类型。  
     []指定数组的秩(维度)。秩指定数组的大小。  
     arrayName 指定数组的名称。  
     int[] intArray;  
     初始化数组中的元素的方式    
     数据类型[] 数组名 = new 数据类型[长度];    
     intArray = new int[1];    
     int[] intArray1 = new int[1];//创建长度为1的int类型数组  
     数据类型[] 数组名 = { 值 1, 值 2, …}    
     int[] intArray2 = {1,2,4,5,6,7,9,10};//创建长度为8的int类型数组  
     数据类型[] 数组名 = new 数据类型[长度] { 值 1,值 2,…}    
     int[] intArray3 = new int[5] {1,10,100,100,1000};//创建长度为5的int类型数组  
     数据类型[] 数组名 = new 数据类型[长度可忽略] { 值 1,值 2,…}    
     int[] intArray5 = new int[] { 1, 100, 1000, };  //创建长度为3的int类型数组  
     int[] intArray4 = new int[] {};  //无长度的数组  后续不能添加任何元素  
     数组访问元素    
     通过数组的下标(索引值) 从0开始 从左到右 依次递增 1    
     string element1 =  stringArray6[0];  Console.WriteLine(element1);   
     修改数组元素    
     stringArray6[2] = "z";   Console.WriteLine(stringArray6[2]);  
     遍历数组方式:    
     for  
     foreach    
     foreach (var item in stringArray6)    
     var 代表任意类型  
     item 代表的数组的元素  
     stringArray6 遍历哪个数组  
     数组越界 是c#中 数组异常 超出数组的最大长度  
     多维数组    
     含义:数组嵌套数组形式 一般常用二维数组  
     二位数组格式:string [,] strArray =new string[数组个数,每个数组中元素个数]  
     交错数组    
     又叫数组类型的数组    
     交错数组是数组的数组,交错数组是一维数组  
     定义交错数组格式:    
     int[][] scores;  
     Day10    
     Array类    
     含义:是 C# 中所有数组的基类,它是在 System 命名空间中定义  提供了各种用于数组的属性和方法  
     写法:Array intArray=Array.CreateInstance(typeof(int), 10);    
     CreateInstance静态方法用于创建一维数组  
     参数1:设置数组数据类型  typeof(int) 转化值类型 为Type类型对象
参数2 数组的长度
    参数2 数组的长度
 SetValue(,)
    
     object  添加的元素  
     数组的索引值  
     获取一维数组指定位置元素 GetValue
    
     int  a =  (int) intArray.GetValue(0);
Console.WriteLine(a);
    Console.WriteLine(a);
 创建二维数组    
     Array  intArray2  = Array.CreateInstance(typeof(int), 2, 2);  
     Indexof(Array array, Obejct)    返回第一次出现的下标    
     查找数组元素的索引值  如果存在 返回对应索引值  反之返回 -1  
     Array.Sort():此方法用于按升序对数组的元素进行排序。它可以应用于基元数据类型的数组,如整数或字符串。    
     Array.Sort(intArray3);  
     Array.Reverse():反转数组中元素的顺序  
     Clear(Array array, int index, int length)    将某个范围内的所有元素设为初始值  
     Copy    深复制   数组内容到另一个数组  
     Array.LastIndexOf():此方法用于查找数组中指定元素最后一次出现的索引。如果未找到该元素,则返回 -1。  
     可变参数params    
     1.params是ParamArrayAttribute(参数数组属性)的缩写  
     2.params解决了C#中不定参数的传递的问题  
     3.params参数必须定义在参数列表最后面。  
     4.params必须对一维数组描述  
     5.params只能在一个方法中 定义一个一维数组    
     private static void ProgramMothod(int a, int b,params int[]parIntArray)  
     Day3    
     标识符    
     标识符是用来识别类、变量、函数或任何其它用户定义的项目  
     标识符必须以字母、下划线或 @ 开头,后面可以跟一系列的字母、数字( 0 - 9 )、下划线( _ )、@。  
     标识符不能是 C# 关键字。除非它们有一个 @ 前缀。 例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字。  
     标识符必须区分大小写。大写字母和小写字母被认为是不同的字母  
     不能与C#的类库名称相同。  
     数据类型:    
     数据类型分类:值类型和引用类型    
     值类型:整数类型   浮点型   布尔类型   单字符类型    struct( 结构 )、 enum(枚举)  
     ②引用类型:字符串类型  类类型   接口  数组、集合,委托  
     字符串类型    
     @"  "表示多行字符串   默认吧\当成普通字符  string stringNumber3 = @"123456  原样输出
  
     sizeof    
     查看当前数据类型的占字节数    
     //int类型的占字节数
Console.WriteLine(sizeof(int));
    Console.WriteLine(sizeof(int));
 变量    
     用来存储特定类型的数据格式    
     变量的使用规则:要先声明再赋值再使用列如:int a=1;先声明它是一个整数类型 然后在给赋值  
     变量命名规则    
     必须以“字母”或@符号或者_开头,不要以数字开头,写字母和小写字母被认为是不同的字母  
     小驼峰命名法,列如 int intNumber = 0;  
     同一作用域中变量名 不能相同  
     定义相同类型的变量    
     int intNumber1,intNumber2,intNumber3;  
     局部变量  定义未赋值时 ,使用变量会报错  
     变量可以修改赋值内容  但是同时只能保存最新的赋值  
     常量    
     含义:存储不变的数据  常量的名字要全部大写 使用关键字const定义常量    
     列如: const double PI = 3.1415926;  
     创建时必须设置它的初始值 且只能被赋值一次  
     接受用户的输出    
     Console.WriteLine(); 输出任意类型内容,并换行  
     Console.Write() 输出任意类型内容,不换行  
     接受用户的输入    
     Console.ReadLine();从屏幕读取一串字符,并返回该字符串,且具备暂停程序功能 等待用户输入  按下回车后继续执行程序  
     Console.Read(); 从屏幕读取一个字符,并返回该字符所对应的整型数字ASCII值  
     .数据类型转换    
     分为隐式类型转换 和显式类型转换    
     ①隐式类型转换(小区间到大区间)  
     ②显式类型转换 大区间转小区间 必须明确转换的类型(类型)  
    
 
 
 
 
  0 条评论
 下一页