C#的入门
C#的入门
文章目录
- C#的入门
- 1.第一个C#程序"Hello world!"
- 2.数据类型
- 2.1 C#的变量命名
- 2.2 C#的内置数据类型
- 2.3 C#的变量的未初始化和使用
- 3.运算符与表达式
- 3.1 “=”与“+”运算符
- 3.2 算术运算符
- 3.3 ++与 - -
- 3.4 复合赋值运算符
- 3.5 关系运算符
- 3.6 逻辑运算符
- 3.7 占位符
- 3.8 表达式
- 4.用户输入与转义字符
- 4.1用户输入
- 4.2转义字符
- 5.类型转换与常量
- 5.1 类型转换
- 5.2 常量
- 6.分支结构之if-else语句
- 6.1与C的不同点:
- 6.1与C的相同点:
- 7.分支结构之switch-case语句
- 7.1与C的不同点:
- 7.2与C的相同点:
- 8.迭代语句之for语句
- “初始化表达式”部分
- “条件”部分
- “迭代器”部分
- 9.迭代语句之while语句
- 10.迭代语句之do-while语句
- 11.数组之基本语法
- 11.1.数组的概念
- 11.2.数组的语法
- 11.3.赋值
- 11.4.使用[取值]
- 12.数组之元素遍历
- 12.1 for 循环遍历数组
- 12.2 foreach 遍历数组
- 12.3 数组元素的初始值
- 13.数组之内存结构
- 13.1 值类型与引用类型
- 13.2 数组的内存结构
- 14.数组之二维数组
- 14.1 二维数组基本语法
- 14.2 二维数组的遍历
- 15.函数(方法)之基本语法
- 15.1 函数(方法)的概念
- 15.2 静态构造函数的声明与调用
- 15.3 函数(方法)的参数与返回值
- 16.函数(方法)之函数重载
- 16.1 何为重载?
- 16.2 函数重载参数的情况
- 17.函数(方法)之高级参数
- 17.1 函数参数传递
- 17.2 ref 参数
- 17.3 out 参数
- 17.4 params参数
- 18.函数(方法)之递归调用
- 18.1 何为递归?
- 18.2 递归要点
- 18.3 递归的优缺点
1.第一个C#程序"Hello world!"
程序代码如下:
using System;namespace ConsoleApp2
{class Program{static void Main(string[] args){Console.WriteLine("Hello world!");Console.ReadKey();}}
}
相比于C的主函数格式int main (void)
与int main (int argc,char** argv[])
;C#的主函数格式则为: static void Main(string[] args)
同时,C#比起C语言的两种注释方法:
//单行注释/*
多行注释
*/
更多了一种:/// XML注释,如下所示
///<summary>
///两数相加
///</summary>
///<param name="a">第一个整数</param>
///<param name="b">第二个整数</param>
///<returns><returns>
static int twoAdd(int a,int b)
{return a + b;
}
- 两个
///<summary>
之间是关于这个函数或者方法的解释 - 下行
///<param name="参数名">自定义注释,可不填</param>
是参数注释 - 最后一行,需要作者在
<returns>
中间填写返回的值的意义 - 在VS2019只需输入///,将自动产生XML注释,关于XML注释到后面再细讲
2.数据类型
2.1 C#的变量命名
规则:
在C的基础上(用英文或_开头,不能以数字开头),多出一项:可以以@符号开头
【_ @ 开头暂时不要用,它们有自己特殊的意义】;
注意事项:
与C一样,C#也区分英文的大小写;变量名不能与关键字重复。
规范:
Camel:变量名首单词的首字母小写,其余每个单词首字母单词大写,多用于给变量或字段或方法参数命名。 eg:highSchoolStudent;
2.2 C#的内置数据类型
C#相比于C,有了更多的内置数据类型。并且与C不同的是,由于微软有关于C#的标准规定,所以不会产生随系统的改变而改变数据类型。
这些是C#中已经规定的简单数据类型,其中uint、ushort、ulong和sbyte 为无符号整型,bool无法进行简单运算。
类型名 | 范围 | 大小 |
---|---|---|
bool | true 或 false | 1字节 |
int | -2,147,483,648 到 2,147,483,647 | 4字节 |
byte | -128到127 | 1字节 |
long | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 8字节 |
short | -32,768 到 32,767 | 2字节 |
float | ±1.5 x 10−45 至 ±3.4 x 1038 | 4字节 |
double | ±5.0 × 10−324 到 ±1.7 × 10308 | 8字节 |
decimal | ±1.0 x 10-28 至 ±7.9228 x 1028 | 16字节 |
char | U+0000 到 U+FFFF | 2字节 |
uint | 0 到 4,294,967,295 | 4字节 |
sbyte | 0到255 | 1字节 |
ulong | 0 到 18,446,744,073,709,551,615 | 8字节 |
ushort | 0 到 65,535 | 2字节 |
注意:特别是,bool 类型是不同的,并且不同于整型,bool 不能用于替代整型数值,反之亦然。
除此之外,C#还具有 object 和 string 两个内置引用类型,一个是对象类型,一个是字符串类型。
具体说明请查看微软的:msdn.
2.3 C#的变量的未初始化和使用
与C不同,C#的局部变量在定义后如果初始化,所有的C#编译器是不会随机赋值给它。
C#的局部变量必须在代码中初始化,之后才可以在语句中进行使用。
初始化不是在声明变量时进行的,编译器会通过检查所有可能的路径,如果检测到局部变量在初始化之前就使用了它的值,编译器会报错 错误代码 CS0165。反之声明变量时没初始化变量,但在之后未使用它,编译器不会报错。
3.运算符与表达式
3.1 “=”与“+”运算符
1.“=”运算符
与C一样,用作赋值,将等号右边的值,赋值给左边的变量
注意:编译器默认把不带f或F的浮点数常量视为double,所以给float赋值时要使用带f或F的浮点数。
2.“+”运算符
- 连接:[当“+”号两边有一边是字符串的时候, “+” 号就起到连接的作用]
string a = "憨憨";
string b = "皮皮虾";
char c = '3';
int d = 1;a += b;//a为"憨憨皮皮虾"
a += c;//a为"憨憨皮皮虾3"
a += d;//a为"憨憨皮皮虾31"
- 相加:[当“+”号两边都是数字的时候,“+” 号就起到相加的作用]
3.2 算术运算符
- “+ - * / ”
加减乘除四则运算,结合性与优先级和C的一样
注意:与C一样,当 / 运算符有左右有一个值是浮点数,则结果为浮点数。
- %运算符
取余运算
注意:与C一样,%左右的值必须为整型数值。
3.3 ++与 - -
自增与自减,与C自增和自减的作用一样。
3.4 复合赋值运算符
有+= 、-= 、*= 、/= 、%=五个复合运算符,作用与C的一样。
3.5 关系运算符
有 > < >= <= == != 六种关系运算符
概念:关系运算符是用来描述两个事物之间的关系。用法与C相同。
由关系运算符连接的表达式称之为“关系表达式”。
注意:关系表达式的运算结果是bool 类型。
3.6 逻辑运算符
有&&与、||或、!非三种逻辑运算符。
注意:逻辑运算符两边放的一般都是 关系表达式 或 bool 类型的值;
注意:逻辑表达式的结果同样也是 bool 类型。
3.7 占位符
作用:让字符串与变量连接更舒服。
格式:{n},代表输出第n-1个参数,且n不能大于参数个数,n-1>0
例子如下:
Console.WriteLine("今天是{0}年{1}月{2}日",2020,1,12);
3.8 表达式
表达式是由一个或多个操作数以及零个或多个运算符组成的序列,其计算结果为一个值、对象、方法或命名空间 。 表达式可以包含文本值、方法调用、运算符及其操作数,或简单名称 。
简单名称可以是变量名、类型成员名、方法参数名、命名空间名或类型名。
4.用户输入与转义字符
4.1用户输入
函数:Console.ReadLine();
string name;
name = Console.ReadLine();
4.2转义字符
概念: 指的是一个 \ 加上 一个特殊的字符,组成了一个具有特殊意义的字符。
C#有以下几个转义字符:
转义字符 | 作用 |
---|---|
\’ | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |
\0 | 空 |
\a | 警告(产生峰鸣) |
\b | 退格 |
\f | 换页 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
@与转义字符的关系 :用在字符串的前面起到两个作用
①取消“\”在字符串中的转义作用,使其单纯的就表示一个斜线——[多用于硬盘路径]
string name = @"D:\Game_R&D";
Console.WriteLine(@"D:\Game_R&D");
不加@,编译会提示无法识别的转义序列。
②字符串中的 " 要用 “” 表示
string str = @"aaa=""bbb""";
// 不加 @,可以写成
string str2 = "aaa=\"bbb\"";
5.类型转换与常量
5.1 类型转换
更加详细的查看内置数值转换(C# 参考)
- 隐式类型转换 [ 自动类型转换 ]
由于这种转换是类型安全且不会导致数据丢失,因此无需使用特殊语法。
示例包括:从较小整数类型到较大整数类型的转换以及从派生类到基类的转换。
从 int、uint、long 或 ulong 到 float 的隐式转换以及从 long 或 ulong 到 double的隐式转换可能会丢失精准率,但绝不会丢失一个数量级。 其他隐式数值转换不会丢失任何信息
条件1:两种类型兼容
条件2:原类型要小于目标类型(小范围的转大范围的)
例:int->double int->float
int a = 10;
double b;
b = a;
- 显式类型转换 [ 强制类型转换 ]
条件1:两种类型兼容
条件2:原类型大于目标类型(大范围的转小范围的)
例:double->int float->int
注意:显式类型转换可能会导致数据丢失或引发异常
double d = 5673.74;
int i;
// 强制转换 double 为 int
i = (int)d;//i的值为5673
- 表达式中的类型转换
有以下几种情况:
1.如果是相同类型进行简单运算,则大部分情况下不会进行类型升级
注:short与char除外,这两种数据类型会自动升级为int类型,再进行运算
2.如果表达式中最大范围的操作数为X类型,则整个表达式的其它数据类型提升为X类型再进行运算。
与C不同的是:C#中如果表达式中最大范围的操作数为float,float在表达式中并不会升为double。
注:
- 类似ulong和long、ushort和short、int和uint、sbyte与byte之间进行简单运算时不会自动升级,编译会报错。
例如:错误 CS0034 运算符“+”对于“long”和“ulong”类型的操作数具有二义性- 类似 ulong 与 ushort 或 uint 与 byte 这样的就通过编译。
- Convert类型转换
概念:
两个变量的类型如果相互兼容,可以使用 自动类型转换 或 强制类型转换。
如果两个变量的类型不兼容,比如 string 和 int ,string 和 double 。
这个时候我们就可以用 Convert 进行转换。
double a;
//由于Console.ReadLine()返回的是string类型的数据,所以要用Convert类型转换
a = Convert.ToDouble(Console.ReadLine());
5.2 常量
1.概念: 一个不能变化的量,常量一旦声明,就不可以再重新赋值。
2.命名规范: 常量名的命名一般是全大写,单词与单词之间用下划线分割。
3.语法: const 数据类型常量名 = 常数值;
6.分支结构之if-else语句
更加详细的请看 微软的官方文档
6.1与C的不同点:
C# 的if语句里的“判断条件” 只能是bool 类型的值,哪怕是关系表达式的返回值也是bool类型。而C的if语句的“判断条件”只看值,不管数据类型。
在C中不内置bool类型,直到C99才定义了bool类型,使用需要引入头文件<stdbool.h>
//C中可以成立
while ("hh")
{printf("hanhan");
}
6.1与C的相同点:
- if语句的写法与C的一样
- if-else-if 里的else也可以省略
- if语句的执行顺序一样,先判断,成立的话执行,不成立的话跳过。
7.分支结构之switch-case语句
更加详细的请看 微软的官方文档
7.1与C的不同点:
若是对应case 中有代码段,在C中允许省略掉该 case 的 break,然后会继续向下执行直到结束或遇到 break 为止。
int Num=5;
switch (Num)
{case 1:System.out.println("one");case 10:System.out.println("ten");default:System.out.println("other");}
而在C#中,若对应 case 中有代码段,则不可以省略该 case 的 break,否则编译器会报错:
//此为错误示例
int Num = 10;
switch (Num)
{case 1:Console.WriteLine("one");case 10:Console.WriteLine("ten");default:Console.WriteLine("other");
}
在C#中,default 不管有没有代码段,都不可以省略 break ,否则编译器报错如下
总之,C# 禁止当一个 switch 部分执行完后,再继续执行到下一个 switch 部分。 编译器会报错:错误 CS0163:“控制不能从一个 case 标签(<case 标签 >)贯穿到另一个 case 标签。”
通常通过使用 break、goto 或 return 语句显式退出开关部分来满足此要求。 不过,以下代码也有效,因为它确保程序控制权无法贯穿到 default switch 部分。
switch (caseSwitch)
{case 1: Console.WriteLine("Case 1..."); break; case 2: case 3:Console.WriteLine("... and/or Case 2"); break;case 4: while (true) Console.WriteLine("Endless looping. . . ."); //死循环,不会执行到下一个switch部分default:Console.WriteLine("Default value...");break;
}
7.2与C的相同点:
- 当对应 case 里没有代码段时,可以将 break 省略。编译通过。此时,case 1 和 case 2为一个 switch 部分。
int Num = 10;
switch (Num)
{
case 1:
case 10:
default:Console.WriteLine("other");break;
}
- 可以不写 default 如果匹配表达式与其他任何 case 标签都不匹配,此时没有 default ,程序流就会贯穿 switch 语句。
8.迭代语句之for语句
详细的查看微软的C#文档
在指定的布尔表达式的计算结果为 true 时,for 语句会执行一条语句或一个语句块。
在 for 语句块中的任何点上,可以使用 break 语句中断循环,或者可以使用 continue 语句继续执行到循环中的下一次迭代。 还可以使用 goto、return 或 throw 语句退出 for 循环。
在C#中,for语句的四个部分也都可以为空,就像C一样。
for ( ; ; )
{// Body of the loop.
}
//或者下面这种形式,无限循环
for ( ; ; );
“初始化表达式”部分
“初始化表达式”部分的语句仅在进入循环前执行一次 。
- 本地循环变量的声明和初始化,不能从循环外访问。
- 以下列表中显示用逗号分隔的零个或多个语句表达式:
赋值语句、方法的调用、自增或自减、通过使用 new 运算符来创建对象、await 表达式
“条件”部分
“条件”部分(如果存在)必须为布尔表达式 。 在每次循环迭代前计算该表达式。 如果“条件”部分不存在或者布尔表达式的计算结果为 true,则执行下一个循环迭代;否则退出循环 。
“迭代器”部分
“迭代器”部分定义循环主体每次迭代后将执行的操作 。 “迭代器”部分包含用逗号分隔的零个或多个以下语句表达式 :
赋值语句、方法的调用、自增或自减、通过使用 new 运算符来创建对象、await 表达式
9.迭代语句之while语句
详细的可查看微软的C#文档
1.同样 while 语句的判断条件必须为布尔表达式,且不可省略。
2.在指定的布尔表达式的计算结果为 true 时,while 语句会执行一条语句或一个语句块。 由于在每次执行循环之前都会计算此表达式,所以 while 循环会执行零次或多次。 这不同于 do 循环,该循环执行一次或多次。
3.在 while 语句块中的任何位置,都可使用 break 语句中断循环。
4.可通过使用 continue 语句直接步入 while 表达式的判断条件。 如果表达式计算结果为 true,则继续执行循环中的第一个语句。 否则,将在循环后的第一个语句处继续执行。
5.还可以使用 goto、return 或 throw 语句退出 while 循环。
6.while 的循环代码段只有一句时可以写成下面这种样子:
while (ture)Console.Writeline("123");
10.迭代语句之do-while语句
1.同样 do-while 语句的判断条件必须为布尔表达式,且不可省略。
2.在指定的布尔表达式的计算结果为 true 时,do 语句会执行一条语句或一个语句块。 由于在每次执行循环之后都会计算此表达式,所以 do-while 循环会执行一次或多次。 这不同于 while 循环(该循环执行零次或多次)。
3.在 do 语句块中的任何点,都可使用 break 语句中断循环。
4.可通过使用 continue 语句直接步入 while 表达式的判断条件。 如果表达式计算结果为 true,则继续执行循环中的第一个语句。 否则,将在循环后的第一个语句处继续执行。
5.还可以使用 goto、return 或 throw 语句退出 do-while 循环。
6.do-while 的循环代码段只有一句时可以写成下面这种样子,不过并不建议:
doConsole.WriteLine(" ");
while (true);
11.数组之基本语法
详细的可查看微软的C#文档
11.1.数组的概念
概念:
数组是一个存储相同类型元素的固定大小的顺序集合。
数组类型是引用类型,声明数组变量只是为引用数组实例预留空间。 实际的数组实例是在运行时使用 new 运算符动态创建而成。 new 运算指定了新数组实例的长度,然后在此实例的生存期内固定使用这个长度。 数组元素的索引介于 0 到 Length - 1 之间。 new 运算符自动将数组元素初始化为其默认值(例如,所有数值类型的默认值为 0,所有引用类型的默认值为 null)。
11.2.数组的语法
1.声明
声明格式:数据类型[] 数组名;
如:int[] intArray; double[] doubleArray;
[] :指定数组的维度,默认是1 维数组。
多维数组的声明和初始化结合如下:
int[] a1 = new int[10];//一维
int[,] a2 = new int[10, 5];//二维
int[,,] a3 = new int[10, 5, 2];//三维
//从左开始依次为一维、二维、三维
2.初始化
初始化格式:数组名= new 数据类型[数组长度];
声明,初始化二合一格式:数据类型[] 数组名= new 数据类型[数组长度];
new : 创建数组实例。
注:左右两端的数据类型要一致。
11.3.赋值
赋值格式:数组名[下标] = 值;
声明,初始化,赋值三合一格式:
数据类型[] 数组名= new 数据类型[数组长度]{值1,值2,…,值N};
数据类型[] 数组名= new 数据类型[]{值1,值2,值3};
只要当数组长度确定为n且(n!=0),并且在声明和初始化的同时对数组进行赋值的时候,必须赋值相同个数。 否则就像下面这行代码,编译会不通过,会报错。
int[] shuzu = new int[10] {1,2,3,4,5,6,7,8,9};
//确定了数组长度n=10,却只赋值了9个
//编辑器报错:错误 CS0847 应为一个长度为“10”的数组初始值设定项
若数组长度不确定,则可以写成下面两种形式:
int[] a = new int[] {1, 2, 3};
int[] a = {1, 2, 3};
11.4.使用[取值]
使用格式:数组名[下标]
注意:
- 数组的下标是从0 开始。
- 数组的长度是固定,赋值与取值的时候,下标不能越界。
12.数组之元素遍历
12.1 for 循环遍历数组
数组长度获取:数组名.length;
for (int n = 0; n < 数组名.length; n++)
{
}
12.2 foreach 遍历数组
foreach(数组的数据类型 临时变量的标识符 in 数组名)
{
Console.WriteLine(临时变量);
}
string[] shengxiao = new string[]{ "子鼠","丑牛","寅虎", "卯兔", "辰龙" };
string tmp = "";
foreach (string n in shengxiao)
{tmp += n;//foreach会将该数组当前循环的元素存入临时变量之中方便使用
}
注意:
- 在 foreach 语句中,类型和标识符都是必需的。
- foreach会将该数组当前循环的元素存入临时变量之中方便使用;
12.3 数组元素的初始值
数组的初始化:数据类型[] 数组名= new 数据类型[数组长度];
new 运算符自动将数组元素初始化为其默认值,可以在数组初始化后用遍历一个个输出查看。
各种类型的数组的默认值为:
- int[], 元素的值默认都是0;
- float[], 元素的值默认都是0;
- double[],元素的值默认都是0.0;
- string[], 元素的值默认都是null;
- bool[], 元素的值默认都是false;
13.数组之内存结构
13.1 值类型与引用类型
1.值类型
int,float,double,bool,char
内存:值类型的值存储在内存的栈中
演示:int 类型变量间传值
int a = 10;
int b = a;
注意:这个时候单独修改b 的值,a 的值不会发生改变,这种传递叫做值传递。 这个时候变量之间的传递就是拷贝一个具体的值给对方。
2.引用类型
数组,字符串
内存:引用类型的值存储在内存的堆中,而储存这个值的地址则储存在栈中。
演示:int 数组类型变量间传值
int[] intA = new int[]{00,111,222,444};
int[] intB = intA;
注意:这个时候单独修改intB 中元素的值,intA 的值是会发生改变,这种传递 叫做引用传递。
这个时候 变量之间的传递 就是 拷贝一个地址给对方。
13.2 数组的内存结构
1.数组在内存中是一块连续的存储空间存储的。
2.最低的地址对应第一个元素,最高的地址对应最后一个元素。
14.数组之二维数组
14.1 二维数组基本语法
1.声明与初始化
声明: 数据类型[,] 数组名;
初始化:数组名= new 数据类型[行数,列数];
声明,初始化二合一格式:
数据类型[,] 数组名= new 数据类型[行数,列数];
2.赋值与取值
赋值: 数组名[下标,下标] = 值;
取值: 数组名[下标,下标];
3.声明初始化赋值三合一:
数据类型[,] 数组名= new 数据类型[,]{
{0,0,0,0,0,0,0,0,0,0},
{1,1,1,1,1,1,1,1,1,1}
};
14.2 二维数组的遍历
遍历方法:for 语句的循环嵌套
循环次数的获取:数组名.GetLength(轴向下标); //获取某个轴向的元素个数。
轴向下标从0开始,依次表示第一维、第二维……
15.函数(方法)之基本语法
15.1 函数(方法)的概念
一段具有特定功能的代码,有自己的标识符,通过标识符可以重复调用这段代码来帮我们完成特定的事情。可以自己定义。
15.2 静态构造函数的声明与调用
1. Pascal 命名法
格式:每个单词的首字母都要大写其余小写,多用于类或方法。
eg:int HighSchoolStudent = 0;
2. 静态构造函数的声明(语法)
静态构造函数用于初始化任何静态数据,或执行仅需执行一次的特定操作。 将在创建第一个实例或引用任何静态成员之前自动调用静态构造函数。
static 返回值类型函数名(函数参数)//两个以上用,隔开,要具有参数类型
{
函数代码段;
}
格式说明:
static: 静态标识符
返回值类型: 如果不需要返回值就写void,就是无返回值的意思;
函数名: 当前功能函数的名字,要符合Pascal 命名规范;
参数列表: 如果不需要参数,小括号中可以直接留空;如果需要参数,格式为:参数类型 参数名;
例子:
static Bus(int routeNum)
{Console.WriteLine("Bus #{0} is created.", routeNum);
}
3. 静态构造函数的调用
函数名([实际参数]);
static void Main(string[] args)
{TextOne(12);Console.ReadKey();
}
static void TextOne(int n)
{
}
注意:
- 如果函数只声明不调用,则函数中的代码不会被执行。
- 与C不一样的是,C#函数不要求在主函数前声明函数。
15.3 函数(方法)的参数与返回值
1.形参与实参
形参: 形式参数,在定义函数的时候,在参数列表中定义的参数。
实参: 实际参数,在调用函数的时候,传递给函数的具体值(可能是地址或者是数字)。
对于 static 函数,可以直接在函数调用的时候将对应数据类型的值填入括号内。
对于 public 函数无法实现。
2.返回值
格式: return 与函数返回值类型相同的表达式
作用:
- 在函数中返回要返回的值;
- 立即结束函数;
注: 若函数无返回值,则 return 可以省略,或者写成 return ;,return后不可接表达式。
16.函数(方法)之函数重载
16.1 何为重载?
函数的名称相同,但是参数列表不同。
调用该函数的时候,会根据不用的参数,自动选择合适的函数重载形式。
例:定义一个Add 的方法,实现整数,双精度浮点数相加操作。
static void Main(string[] args)
{Add (1,2);
}
static int Add (int a,int b)
{return a + b;
}
static double Add (double a, double b)
{return a + b;
}
static double Add (double a, int b)
{return a + b;
}
16.2 函数重载参数的情况
函数重载的参数个数和类型不能完全相同。
注意:函数的返回值和重载没有关系。
17.函数(方法)之高级参数
17.1 函数参数传递
调用函数,会将函数加载到栈空间中,传递的值,是直接拷贝了变量储存的值再传递,也就是 “值传递” 。
17.2 ref 参数
1.作用
使外部变量的地址传入函数中,从而在函数中改变外部变量的值。也就是"引用传递"。
2.要求
调用函数前,必须在函数外为传入函数的外部变量赋值。在函数中赋值与否都可以。
3.语法
形参和实参前面都要加 ref 关键字。
int num = 9;//调用函数的时候实参前 + ref
Add(ref num);
//声明函数的时候形参前 + ref
static void Add(ref int num);
{
num += 10;
}
17.3 out 参数
1.作用
函数中如果返回多个值。
2.要求
函数外可以不为 out 变量赋值,而函数内必须为其赋值。
3.语法
形参和实参前面都要加 out 关键字。
int num = 10;
int a,b;
b = 10;//调用函数的时候实参前 + out
Add(num,out a,out b);
//声明函数的时候形参前 + out
static void Add(int num,out int a,out int b);
{
num += 10;
a = num/2;
b = num*num;
}
17.4 params参数
后续更新
18.函数(方法)之递归调用
18.1 何为递归?
递归算法:一种在函数内 直接或者间接 地 调用自身函数或者方法的算法。
18.2 递归要点
- 递归时函数会一直调用自己,直到满足某个特定条件 才一层层结束。
(所以递归要有一个结束条件 来 return) - 递归调用时应该会传递一些参数,而且每次调用都会传递一个新的参数。
18.3 递归的优缺点
优点:
- 代码简洁
- 在树的前序,中序,后序遍历算法中,递归的实现明显要比循环简单得多。
缺点:
- 递归由于是函数调用自身,而函数调用是有时间和空间的消耗的:每一次函数调用,都需要在内存栈中分配空间以保存参数、返回地址以及临时变量,而往栈中压入数据和弹出数据都需要时间。->效率
- 递归中很多计算都是重复的,由于其本质是把一个问题分解成两个或者多个小问题,多个小问题存在相互重叠的部分,则存在重复计算,如fibonacci斐波那契数列的递归实现。->效率
- 调用栈可能会溢出,其实每一次函数调用会在内存栈中分配空间,而每个进程的栈的容量是有限的,当调用的层次太多时,就会超出栈的容量,从而导致栈溢出。->性能
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- Vue pdfJs 预览PDF、图片
步骤如下:1.下载pdfJs到本地(官网下载地址),放到项目根目录下的static文件夹内,将文件命名为pdfJs。如下图2. 使用iframe打开<iframe id="pdfPlayer" src="URL" frameborder="0" width="100%" height="600px">&…...
2024/4/30 20:01:52 - Scala 元组Tuple
映射是 K/V 对偶的集合,对偶是元组的最简单形式。元组可以装多个不同类型的值,如果需要集合中元素类型多样性,就可以采用元组。创建元组元组最多22个元素// 二元元组 val t = (1, "scala") val t = (1 -> "scala") val t = 1 -> "scala"…...
2024/4/30 19:40:51 - java 多个二维码读取报错
多个二维码的图片读取返回数组,在异常里处理public static String decode(File file) throws Exception {BufferedImage image;image = ImageIO.read(file);if (image == null) {return null;}BufferedImageLuminanceSource source = new BufferedImageLuminanceSource(image)…...
2024/4/23 19:18:30 - Java中synchronized的同步原理
本文介绍在java开发中,怎么利用synchronized保证代码的同步执行,避免跳坑,废话不多说,直接上demo。package com.helianxiaowu.demo;/** * @title synchronized同步demo * @desc 注意:为了演示方便,代码中多线程使用直接new的方式,这种方式不可取,会造成服务器资源…...
2024/4/2 12:06:08 - 文件缓冲区介绍与理解
何为文件缓冲区? 文件缓冲区缓冲文件系统是系统自动在内存中为程序中每一个正在使用的文件开辟一块“文件缓冲区”。从内存向磁盘输出的数据会先送到内存的缓冲区,等装满缓冲区后一起送到磁盘上从磁盘向计算机读入数据,则从磁盘文件中读取数据输入到内存缓冲区,然后再从缓冲…...
2024/4/27 18:48:59 - React Native适配安卓IOS刘海屏、异形屏方案
首先顶部引入这几个模块import {Platform,SafeAreaView,NativeModules,StatusBar } from "react-native"; const { StatusBarManager } = NativeModules;获取状态栏高度let statusBarHeight;if (Platform.OS === "ios") {StatusBarManager.getHeight(heigh…...
2024/3/29 12:46:58 - sockaddr和sockaddr_in结构体、以及inet_ntoa()和inet_addr()函数的用法
在网络通讯程序中会用到sockaddr和sockaddr_in这两个结构体,下面对这两个结构体进行一下分析。一、 sockaddr和sockaddr_instruct sockaddr 这个结构体是在<<sys/socket.h>>头文件中定义的。结构体的定义如下:struct sockaddr { sa_family_t sin_family; …...
2024/4/26 23:06:36 - Android SDK 介绍及导入
1、环境要求建议使用Android Studio 2.3及以上版本Java编译版本JDK1.7以上Android SDK最低支持API 21即安卓5.0以上版本 2、导入SDK将LongChatSDK.jar 的jar包放到项目中的lib文件夹下面,然后右击Jar文件,点击Add As Library3、配置工程3.1权限配置<uses-permission andro…...
2024/3/29 12:46:56 - Oracle EBS 基础概念:请求组
请求组:分配给职责,控制用户对于报表的访问权限。 系统路径: SYSADMIN -> Security -> Responsibility -> RequestApplication:包括了此应用产品中的所有请求。 Program: 添加请求 SQL:查看有某个请求权限的职责(下一步即可查看用户是否具有某个请求的权限) sel…...
2024/4/28 0:24:40 - 对于服务端测试的一些经验和思考
最近随着测试服务端的工作达到一定的量,在工作完成一个阶段之后,细细回想,还是有一些经验可以分享给大家的。工作的项目中经常会涉及到微服务的重构或者迁移,那么针对这种代码的重构之后,映射到业务层面,测试同学该如何开展工作呢?示例场景:以前的直接购买走的是paypay…...
2024/4/24 3:25:27 - Scala序列List
Scala 的集合有三大类:序列 Seq、集 Set、映射 Map,所有的集合都扩展自 Iterable。 在 Scala 中集合有可变(mutable)和不可变(immutable)两种类型, immutable 类型的集合初始化后就不能改变了(注意与 val 修饰的变量进行区别)。目录不可变序列1. 构建List2. 插入3. 追…...
2024/4/24 11:16:16 - 谷歌浏览器如何关闭当前页面
最近小编遇到一个需求:用户登录系统申请某个业务,当帐号等级低于L2级时弹框提示用户提升帐号等级,弹框上面有2个按钮“去提升”、“关闭”,前面一个按钮自然是去到提升页面,而后面按钮就是关闭当前页面,本以为很简单的功能,新版的谷歌运行时控制台提示警告:Scripts may…...
2024/4/27 21:47:09 - 容器编排、镜像服务和代码托管的选择
团队使用Docker后,镜像直接push到云端,不仅启动容器时下载快速,而且和代码源配套使用,前面分享过《借用阿里云容器镜像服务,实现Docker自动构建》在选择云服务时,比较了几大云服务商,信息整理出来分享,排名不分先后。信息更新日期2020年1月16日。...
2024/4/22 6:11:44 - buuctf 刷题记录 模板注入
查看源代码发现三个txt进入的格式是这样的把filename改为/fllllllllllllagemmmmm,点其他连个看看有思路了重点就是求出这个cookie_secret 作为一个菜鸡,百度tornado 然后了解到了模板注入(配上网址https://www.jianshu.com/p/aef2ae0498df) render是一个类似模板的东西,可…...
2024/3/29 12:46:54 - Scala集合Set、Map
Scala 的集合有三大类:序列 Seq、集 Set、映射 Map,所有的集合都扩展自 Iterable 。 在 Scala 中集合有可变(mutable)和不可变(immutable)两种类型, immutable 类型的集合初始化后就不能改变了(注意与 val 修饰的变量进行区别)。不可变 Set创建不可变 HashSetval set1…...
2024/4/14 19:07:26 - 利用云服务器和Discuz社区框架搭建论坛
需要工具: 1.云服务器一台(我用的是华为云) 2.Discuz_X3.4框架百度云盘链接 3.putty(ssh连接) 4.MobaXterm_CHS(FTP连接) 配置环境: 1.云服务器我装的是Ubuntu16.04系统 (自己安装apache2、mysql、php7.0等一系列环境) 2.Discuz使用3.4版本 操作流程: 1.配置好云服务…...
2024/4/17 21:08:49 - SpringBoot整合阿里RocketMQ
什么是RocketMQ 阿里消息队列 RocketMQ版既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性,同时是收费的产品。 应用场景 削峰填谷 诸如秒杀、抢红包、企业开门红等大型活动时皆会带来较高的流量脉冲,或因…...
2024/4/28 12:41:17 - linux超管用的mysql too many connections 解决方法(亲测有效)
———— 1 start1. 错误 too many connections 如下 (1)首先我们知道出现这种情况使用 mysql -u root -p 的方式进行登录连接数据库是不行的 2.因此我们先使用如下方式里连接上数据库 (1)首先初始化mysql,发现/var/lib/mysql /这个目标路径已经存在/var/lib/mysql/,导致…...
2024/3/29 12:46:50 - Scala 映射Map
在 Scala 中,把哈希表这种数据结构叫做映射, 在 Java 中也叫做映射,在 Python 中把哈希表这种数据结构叫做字典。Scala 的集合有三大类:序列 Seq、集 Set、映射 Map,所有的集合都扩展自 Iterable 。 在 Scala 中集合有可变(mutable)和不可变(immutable)两种类型, imm…...
2024/4/28 2:40:07 - Day02-Collection、泛型
第一章 Collection集合 1.1 集合概述 在前面基础班我们已经学习过并使用过集合ArrayList ,那么集合到底是什么呢?集合:集合是java中提供的一种容器,可以用来存储多个数据。集合和数组既然都是容器,它们有啥区别呢?数组的长度是固定的。集合的长度是可变的。 数组中存储的是…...
2024/4/28 6:57:47
最新文章
- Java笔记(21)
这个是我平时开发一直比较常用到的一些东西,做个记录,偶尔翻一翻还是很有用的。 Lambda查询使用: LambdaQueryWrapper<OperConfigStorage> lq = new LambdaQueryWrapper<>();lq.eq(OperConfigStorage::getTenantCode, tenantCode);if (StringUtils.isNotBlank…...
2024/4/30 22:43:09 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 权限提升-Linux系统权限提升篇VulnhubRbash绕过DockerLXD容器History泄漏shell交互
知识点 1、普通用户到Linux-泄漏-History 2、普通用户到Linux-限制-Rbash绕过 3、普通用户到Linux-容器-LXD&Docker 4.Linux系统提权-web/普通用户-docker逃逸&提权&shell交互 章节点: 1、Web权限提升及转移 2、系统权限提升及转移 3、宿主权限提升及…...
2024/4/30 4:03:17 - 大数据学习十三天(hadhoop基础2)
一: MapReduce概述(了解) MapReduce是hadoop三大组件之一,是分布式计算组件 Map阶段 : 将数据拆分到不同的服务器后执行Maptask任务,得到一个中间结果 Reduce阶段 : 将Maptask执行的结果进行汇总,按照Reducetask的计算 规则获得一个唯一的结果 我们在MapReduce计算框架的使用过…...
2024/4/30 7:24:46 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/29 23:16:47 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/30 18:14:14 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/29 2:29:43 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/30 18:21:48 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/30 9:43:09 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/29 20:46:55 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/30 22:21:04 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/26 23:04:58 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/30 9:42:22 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/30 9:43:22 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/30 9:42:49 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57