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