C#(CSharp)入门教程

目录

C#的第一个程序

变量 

折叠代码 

变量类型和声明变量 

获取变量类型所占内存空间(sizeof) 

常量 

转义字符 

隐式转换 

显示转换 

异常捕获 

运算符 

算术运算符 

布尔逻辑运算符

关系运算符 

位运算符 

其他运算符 

字符串拼接 

条件分支语句 

if...else 语句

switch语句 

循环语句 

while语句 

do while语句 (使用较少)

for循环 (最常用)

补充内容 

随机数 


C#的第一个程序

 因为笔者学习过Java,所以个人感觉C#上手起来很快,很多都是java中学习过的,所以不再赘述。该系列文章主要是分享给有一定编程经验的小伙伴,但是又想要学习C#的来使用,零基础的可能会比较吃力,所以酌情使用。

using System;namespace CSharp入门_第一个程序
{class Program{static void Main(string[] args){//使用Console调用方法Console.WriteLine("Hello World");//WriteLine方法会自动空一行(换行)//使用Write则不会换行Console.WriteLine("我爱敲代码");//输出Console.Write("你好!");Console.Write("世界");//Console.ReadKey();//需要使用该语句,不然控制台会一闪而过,或者只执行不调试也可以Console.WriteLine("请玩家输入名字:");//C#的输入Console.ReadLine();//玩家输入完毕Console.Write("玩家输入完毕!请开始游戏吧!");//这里注意!不使用ReadKey是会直接闪过控制台的,所以我们还是可以使用Ctrl+F5}}
}

需要特别注意的是向控制台输入内容:

//向控制台输入信息
Console.ReadLine();
//判断是否按键,只有玩家按键了才会结束(可以用来防止跳过控制台显示)
Console.ReadKey();

变量 

折叠代码 

using System;namespace CSharp入门_变量
{class Program{static void Main(string[] args){Console.WriteLine("变量");//1、折叠代码(防止代码过于凌乱)输入#region按下tab自动补全#region  声明变量#endregion}}
}

点击-号后我们可以看到中间部分进行了折叠:

变量类型和声明变量 

using System;namespace CSharp入门_变量
{class Program{static void Main(string[] args){Console.WriteLine("变量");//1、折叠代码(防止代码过于凌乱)输入#region按下tab自动补全#region  声明变量//有符号整型//sbytesbyte i = 1;Console.WriteLine("i的值为" + i);//shortshort x = 2;Console.WriteLine("x的值为" + x);//intint y = 3;Console.WriteLine("y的值为" + y);//longlong z = 4;Console.WriteLine("z的值为" + z);//无符号整型//bytebyte a = 5;Console.WriteLine("a的值为" + a);//ushortushort b = 6;Console.WriteLine("b的值为" + b);//uintuint c = 7;Console.WriteLine("c的值为" + c);//ulongulong d = 8;Console.WriteLine("d的值为" + d);//浮点数(小数)//floatfloat f = 0.12f;Console.WriteLine("f的值为" + f);//doubledouble db = 0.223;Console.WriteLine("db的值为" + db);//decimldecimal dm = 0.123456789m;Console.WriteLine("dm的值为" + dm);//特殊类型//boolbool b1 = true;bool b2 = false;Console.WriteLine(b1 + "_" + b2);//char(字符)char ch = 'A';Console.WriteLine("ch的值为"+ch);//string(字符串)string str = "我要认认真真学CSharp";Console.WriteLine(str);#endregion}}
}

获取变量类型所占内存空间(sizeof) 

using System;namespace CSharp入门_变量
{class Program{static void Main(string[] args){Console.WriteLine("变量");//1、折叠代码(防止代码过于凌乱)输入#region按下tab自动补全#region  声明变量//有符号整型//sbytesbyte i = 1;Console.WriteLine("i的值为" + i);//shortshort x = 2;Console.WriteLine("x的值为" + x);//intint y = 3;Console.WriteLine("y的值为" + y);//longlong z = 4;Console.WriteLine("z的值为" + z);//无符号整型//bytebyte a = 5;Console.WriteLine("a的值为" + a);//ushortushort b = 6;Console.WriteLine("b的值为" + b);//uintuint c = 7;Console.WriteLine("c的值为" + c);//ulongulong d = 8;Console.WriteLine("d的值为" + d);//浮点数(小数)//floatfloat f = 0.12f;Console.WriteLine("f的值为" + f);//doubledouble db = 0.223;Console.WriteLine("db的值为" + db);//decimldecimal dm = 0.123456789m;Console.WriteLine("dm的值为" + dm);//特殊类型//boolbool b1 = true;bool b2 = false;Console.WriteLine(b1 + "_" + b2);//char(字符)char ch = 'A';Console.WriteLine("ch的值为"+ch);//string(字符串)string str = "我要认认真真学CSharp";Console.WriteLine(str);#endregionint sbyteSize = sizeof(sbyte);Console.WriteLine("sbyte所占的字节数为:" + sbyteSize);int shortSize = sizeof(short);Console.WriteLine("short所占的字节数为:" + shortSize);int intSize = sizeof(int);Console.WriteLine("int所占的字节数为:" + intSize);int longSize = sizeof(long);Console.WriteLine("long所占的字节数为:" + longSize);Console.WriteLine("*********************************************");int byteSize = sizeof(byte);Console.WriteLine("byte所占的字节数为:" + byteSize);int uintSize = sizeof(uint);Console.WriteLine("uint所占的字节数为:" + uintSize);int ushortSize = sizeof(ushort);Console.WriteLine("ushort所占的字节数为:" + ushortSize);int ulongSize = sizeof(ulong);Console.WriteLine("ulong所占的字节数为:" + ulongSize);Console.WriteLine("*********************************************");int floatSize = sizeof(float);Console.WriteLine("float所占的字节数为:" + floatSize);int doubleSize = sizeof(double);Console.WriteLine("double所占的字节数为:" + doubleSize);int decimalSize = sizeof(decimal);Console.WriteLine("decimal所占的字节数为:" + decimalSize);Console.WriteLine("*********************************************");int boolSize = sizeof(bool);Console.WriteLine("bool所占的字节数为:" + boolSize);int charSize = sizeof(char);Console.WriteLine("char所占的字节数为:" + charSize);}}
}

常量 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CSharp入门_常量
{class Program{static void Main(string[] args){Console.WriteLine("常量");//常量使用关键字constconst int c = 1;Console.WriteLine("c的值为"+c);//常量特点:必须初始化,不可以更改//使用常量的场景:声明一些常用的不变的量,如π}}
}

转义字符 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CSharp入门_转义字符
{class Program{static void Main(string[] args){Console.WriteLine("转义字符");/** 转义字符的使用*///单引号   \'string str1 = "\'哈哈哈\'";Console.WriteLine("str1 = "+str1);//双引号 \"string str2 = "\"CSharp太好学啦!\"";Console.WriteLine("str2 = " + str2);//换行  \nstring str3 = "\"CSharp\n太好学啦!\"";Console.WriteLine("str3 = " + str3);//斜杠 \\string str4 = "\"CSharp\\太好学啦!\"";Console.WriteLine("str4 = " + str4);/** 下面的是不太常用的转义字符* *///制表符 \t (空一个tab键)string str5 = "我要好好学\t编程";Console.WriteLine("str5 = " + str5);//光标退格  \b  (光标退一格进行覆盖)string str6 = "我要好好学\b编程";Console.WriteLine("str6 = " + str6);//警报音  \a   这里会有个警报音响起string str7 = "\a";Console.WriteLine(str7);/*取消转义字符  使用@*/string str8 = @"\n\\";Console.WriteLine("str8 = "+str8);}}
}

隐式转换 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CSharp入门_隐式转换
{class Program{static void Main(string[] args){Console.WriteLine("隐式转换");//大范围装小范围,记住这个就可以long L = 5;int i = 1;L = i;Console.WriteLine("L = "+L);//一般都是这个规律,但是浮点型中decimal不能隐式转换为float和double//特殊类型如bool,char,string之间不存在隐式转换,但是char可以隐式转换为整数//(因为char取值范围是0-65535,其对应的数字 其实是一个ascll码,一个数字就是一个对应关系)//无符号的不能装有符号的,但是有符号的可以装无符号的,因为无符号数没有负数,而有符号数则有负数//即有符号数不能隐式转换为无符号数,无符号数可以隐式转换为有符号数(要注意范围是涵盖的,大装小)uint ui = 4;L = ui;Console.WriteLine("L = " +L );//浮点数可以装任何类型的 整型float f = L;Console.WriteLine("f = " + f);//总结://double一>f1oat一>所有整形(无符号、有符号)//decimal一>所有整形(无符号、有符号)//整数不能去装浮点数:浮点数不能隐式转换为整数//总结隐式转换规则//高精度(大范围)装低精度(小范围)//double一 > f1oat一 > 整数(无符号、有符号)一 > char//decimal一 > 整数(无符号、有符号)一 > char//string和boo1不参与隐式转换规则的}}
}

显示转换 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CSharp入门_显示转换
{class Program{static void Main(string[] args){Console.WriteLine("显示转换");//1、强制类型转换  将高精度类型强制转换为低精度类型//语法:变量类型 变量名 = (强转的类型)变量;//需要注意:精度和范围short st = 1;int i = 5;st = (short)i;Console.WriteLine("st的值为:" + st);//如果我们范围超过就会出问题short so = 2;int x = 40000;so = (short)x;Console.WriteLine("so的值为:" + so);//注意:在强制类型转换的时候一定要注意范围,在强制转换浮点型的时候会出现精度变低的情况,要注意//浮点数强转成整形时会直接抛弃掉小数点后面的小数double b = 1.5999999;i = (int)b;Console.WriteLine("i的值为:" + i);//2、Parse转换 (将字符串类型转换为对应的类型)字符串必须能够转换为对应类型,不然会报错,还有范围//语法:变量类型.Parse("字符串");int i2 = int.Parse("123");Console.WriteLine("i2的值为:" + i2);//3、Convert转换//作用://更准确的将各个类型之间进行相互转换//语法:Convert.To目标类型(变量或常量)//注意:填写的变量或常量必须正确否则出错int i3 = Convert.ToInt32("1234");Console.WriteLine("i3的值为:" + i3);//Convert转换时会四舍五入,精度比强制类型转换高i3 = Convert.ToInt32(1.688f);Console.WriteLine("i3的值为:" + i3);//对于bool也可以转化为inti3 = Convert.ToInt32(true);Console.WriteLine("i3的值为:" + i3);i3 = Convert.ToInt32(false);Console.WriteLine("i3的值为:" + i3);float f1 = Convert.ToSingle(12.5);bool b1 = Convert.ToBoolean("true");//4、其他类型转string//变量.ToString();String str3 = 1.ToString();Console.WriteLine("str3的值为:" + str3);String str4 = 1.5f.ToString();Console.WriteLine("str4的值为:" + str4);Console.WriteLine("666"+1 +true);//相对于每个都调用了tostring}}
}

异常捕获 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CSharp入门_异常捕获
{class Program{static void Main(string[] args){Console.WriteLine("异常捕获");#region 作用//异常捕获作用:避免代码错误造成程序卡死//string str = Console.ReadLine();// int i = int.Parse(str);//比如这里的str如果输入的范围大于int就会卡死#endregion#region 语法try{//希望进行异常捕获的代码块//如果try中的代码块出现异常就进入catch}catch(Exception e)//可以通过e得到具体的报错信息(可以不写){//如果异常进行的动作}finally//可选{//不管有没有出错,都会执行其中的代码}#endregion#region 测试try{string str2 = Console.ReadLine();int i2= int.Parse(str2);Console.WriteLine(i2);}catch {Console.WriteLine("请输入合法的数字!");}finally{Console.WriteLine("执行完毕!");}#endregion}}
}

如果输入不合法:

运算符 

算术运算符 

一元运算符描述实例
++增量运算符++a 输出 11
--减量运算符--a 输出 9
+一元加运算符+a 输出 10
-一元减运算符-a 输出 -10
二元运算符描述实例
*乘法运算符a * b 输出 200
/除法运算符b / a 输出 2
%余数运算符b % a 输出 0
+加法运算符b + a 输出 30
-减法运算符b - a 输出 10

布尔逻辑运算符

布尔运算符描述实例
!逻辑非运算符!a 为 False
&逻辑与运算符a & b 为 False
|逻辑或运算符a | b 为 True
^逻辑异或运算符a ^ b 为 True
&&条件逻辑与运算符a && b 为 False
||条件逻辑或运算符a || b 为 True

关系运算符 

位运算符 

位运算符描述实例
~按位求补运算符~a 等于 -2
<<左移位运算符a << 2 等于 4
>>右移位运算符a >> 2 等于 0
>>>无符号右移运算符a >>> 2 等于 0
&逻辑与运算符a & b 等于 0
^逻辑异或运算符a ^ b 等于 3
|逻辑或运算符a | b 等于 3

其他运算符 

字符串拼接 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CSharp入门_字符串拼接
{class Program{static void Main(string[] args){Console.WriteLine("字符串拼接");//1、用+号进行字符串拼接string str = "123";Console.WriteLine(str+"456");str = str + 1;Console.WriteLine(str);str = "123";str += "1" + 4 + true;Console.WriteLine(str);str += 1 + 2 + 3 + 4;Console.WriteLine(str);str += "" + 1 + 2 + 3;Console.WriteLine(str);//2、使用string.Format();//string.Format("待拼接的内容",内容1,内容2,.....)//拼接内容中的固定规则//想要被拼接的内容用占位符替代{数字}数字:n依次往后string str3;str3 = string.Format("我爱{0}, 我今年{1}岁, 我想好好学习{2}", "学习",18, "C#");Console.WriteLine(str3);str3 = string.Format("{0}{1}{2}", 1, true, false);Console.WriteLine(str3);//3、控制台打印Console.WriteLine("A{0}B{1}C{2}", 1, true, false);//注意:后面的内容可以比前面多,但是不能比前面少,否则会报错,还有占位符数字要从0开始}}
}

条件分支语句 

if...else 语句

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CSharp入门_条件分支语句
{class Program{static void Main(string[] args){Console.WriteLine("条件分支语句");//if语句int i = 0;int flag = 0;if (flag == 0){i = 100;flag = 1;}Console.WriteLine(i);//if...elseif (flag == 1){i = 200;}else{i = 1;}Console.WriteLine(i);//再举一个Console.WriteLine("请输入性别:"+"输入男或者女");string sex = Console.ReadLine();if (sex == "男"){Console.WriteLine("我是男生");}else{Console.WriteLine("我是女生");}}}
}

switch语句 

            //switch语句int a = 3;switch (a){case 1: //条件只能是常量Console.WriteLine("a = 1");break;case 2:Console.WriteLine("a = 2");break;case 3:Console.WriteLine("a = 3");break;default:Console.WriteLine("什么条件都不满足,执行default语句");break;}//switch也支持自定义常量int b = 2;const int x = 2;switch (b){case 1: //条件只能是常量Console.WriteLine("b = 1");break;case x:Console.WriteLine("b = 2");break;case 3:Console.WriteLine("b = 3");break;default:Console.WriteLine("什么条件都不满足,执行default语句");break;}//同时需要注意的是switch会进行贯穿int c = 1;switch (c){case 1: //条件只能是常量case 2:case 3:Console.WriteLine("c = 3");  //C#的贯穿和java不一样,java的在case后面还可以进行执行语句,而C#后面只能像上述所写//贯穿到第一个break,所以结果是c = 3break;default:Console.WriteLine("什么条件都不满足,执行default语句");break;}

循环语句 

while语句 

写循环语句的时候一般要避免写死循环(条件一直为真) 还会造成程序卡死

但是有时候也会用到死循环

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CSharp入门_循环语句
{class Program{static void Main(string[] args){Console.WriteLine("循环语句");//while语句//while (true)//{//    Console.WriteLine("这是一个死循环");//}//巧用死循环string password = "123456";while (true){Console.WriteLine("请用户输入密码:");string str = Console.ReadLine();if (str == password){Console.WriteLine("登录成功!");break;}}}}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CSharp入门_循环语句
{class Program{static void Main(string[] args){Console.WriteLine("循环语句");//while语句//while (true)//{//    Console.WriteLine("这是一个死循环");//}//巧用死循环string password = "123456";while (true){Console.WriteLine("请用户输入密码:");string str = Console.ReadLine();if (str == password){Console.WriteLine("登录成功!");break;//跳出循环}}int i = 0;while (i < 10){i++;}Console.WriteLine("i = "+i);}}
}

         //打印1到20之间的奇数int index = 0;while (index < 20){++index;//什么样的数是奇数//不能被2整除的数一>%if (index % 2 == 0)continue;  //回到循环开始,继续执行Console.WriteLine(index);}

do while语句 (使用较少)

do while语句和while的不同在于do while是先执行一次再进行判断,其他基本一致。

          int a = 0;do{a++;} while (a<5);Console.WriteLine(a);//如果使用while的话这里的a就变成4了

需要注意一点的是:continue在该语句中使用的时候是跳转到while进行判断,而不是从上到下 

for循环 (最常用)

for循环特别适合在某个范围内进行取值的操作,一般while能做的,for循环都可以做

            for (int p = 0; p < 10; p++){Console.WriteLine(p);}//for (; ; )//{//    Console.WriteLine("for循环的死循环");//}int i ;for (i = 0; i < 10; i++){for(int j = 0; j < 10; j++){Console.WriteLine(i+"_"+j);}}

补充内容 

//输入一个键并赋值
char c = Console.ReadKey().KeyChar;
//输入一个键并赋值 且不在控制台显示
char c = Console.ReadKey(true).KeyChar;
//清除控制台
Console.Clear();
//设置光标位置 控制台左上角为0,0 右侧是x正方向 下方是y正方向
Console.SetCursorPosition(10,5);
//设置文字颜色
Console.ForegroundColor = ConsoleColor.Red;
//设置背景色 配合Clear使用 填充窗口颜色
Console.BackgroundColor = ConsoleColor.White;
Console.Clear();
//光标显隐
Console.CursorVisible = false;
//关闭控制台
Environment.Exit(0);

随机数 

 

好了,C#(CSharp)入门教程到这里就基本结束了,全程都由本人在线学习进行敲的代码,可以直接拿来实验,多敲代码,才能掌握的更好哈!加油,接着学!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/145435.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机图像处理-高斯滤波

高斯滤波 高斯滤波是一种线性平滑滤波&#xff0c;适用于消除高斯噪声&#xff0c;广泛应用于图像处理的减噪过程。通俗的讲&#xff0c;高斯滤波就是对整幅图像进行加权平均的过程&#xff0c;每一个像素点的值&#xff0c;都由其本身和邻域内的其他像素值经过加权平均后得到…

Ubuntu部署运行ORB-SLAM2

ORB-SLAM2是特征点法的视觉SLAM集大成者&#xff0c;不夸张地说是必学代码。博主已经多次部署运行与ORB-SLAM2相关的代码&#xff0c;所以对环境和依赖很熟悉&#xff0c;对整个系统也是学习了几个月&#xff0c;一行行代码理解。本次在工控机上部署记录下完整的流程。 ORB-SLA…

koa基础应用

不要把koa想得太复杂&#xff0c;他就是一个Node框架而已。 在本地应用安装好Node和koa后&#xff0c;先实现一下简单的服务app.js&#xff0c;代码如下&#xff1a; const Koa require(koa) const app new Koa(); app.use(async (context) > {context.body hello Koa …

企业风险管理策略终极指南

企业风险管理不一定是可怕的。企业风险管理是一个模糊且难以定义的主题领域。它涵盖了企业的多种风险和程序&#xff0c;与传统的风险管理有很大不同。 那么&#xff0c;企业风险管理到底是什么&#xff1f;在本文中&#xff0c;我们将确定它是什么&#xff0c;提出两种常见的…

B058-SpringBoot

目录 springboot概念与作用入门案例springboot运行方式热部署配置文件Profile多环境支持整合测试-springboot-testSpringboot-web1.返回json数据2.返回页面&#xff08;模板技术&#xff09;thymeleaf1.导入thymeleaf依赖2.模板文件3.controller4.启动类 SSM整合1.导包2.项目目…

机器人中的数值优化|【四】L-BFGS理论推导与延伸

机器人中的数值优化|【四】L-BFGS理论推导与延伸 往期内容回顾 机器人中的数值优化|【一】数值优化基础 机器人中的数值优化|【二】最速下降法&#xff0c;可行牛顿法的python实现&#xff0c;以Rosenbrock function为例 机器人中的数值优化|【三】无约束优化&#xff0c;拟牛…

让大脑自由

前言 作者写这本书的目的是什么&#xff1f; 教会我们如何让大脑更好地为自己工作。 1 大脑的运行机制是怎样的&#xff1f; 大脑的基本运行机制是神经元之间通过突触传递信息&#xff0c;神经元的兴奋和抑制状态决定了神经网络的运行和信息处理&#xff0c;神经网络可以通过…

使用Qt验证RGB格式

下面我们用不同的颜色来绘制一块矩形区域&#xff0c;来对比学习RGB颜色。 一片漆黑的黑色 黑色在RGB中是三个颜色分量都是0。也就是没有颜色。 下面我们绘制一个水平100个像素&#xff0c;垂直200个像素的矩形区域&#xff0c;颜色设置为黑色。 #ifndef MAINWINDOW_H #def…

SpringBoot整合阿里云OSS文件存储解决方案

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;啥技术都喜欢捣鼓捣鼓&#xff0c;喜欢分享技术、经验、生活。 &#x1f60e;人生感悟&#xff1a;尝尽人生百味&#xff0c;方知世间冷暖。 &#x1f4d6;所属专栏&#xff1a;Sp…

Dink进阶之路

1、环境变量 cat /etc/profile #flink需要 export HADOOP_CLASSPATHhadoop classpath export HADOOP_CONF_DIR/etc/hadoop/conf2、Flink配置 2.1、flink-conf.yaml jobmanager.rpc.address: node-146 jobmanager.rpc.port: 6123 # 设置jobmanager总内存 jobmanager.memory.…

clip代码安装实操

CLIP模型及代码地址&#xff1a;GitHub - openai/CLIP: Contrastive Language-Image Pretraining 代码准备环境 先创建一个anaconda虚拟环境&#xff0c;包含python3.7版本&#xff0c;将该环境命名为clip。成功。 &#xff08; pytorch1.7.1 所需 python 版本 >3.6&…

React 入门笔记

前言 国庆值班把假期拆了个稀碎, 正好不用去看人潮人海, 趁机会赶个晚集入门一下都火这么久的 React 前端技术. 话说其实 n 年前也了解过一丢丢来着, 当时看到一上来就用 JS 写 DOM 的套路直接就给吓退了, 扭头还去看 Vue 了&#x1f923;, 现在从市场份额来看, 确实 React 还…

抓包习讯云院校数据通过PHP解析导入数据库

前言 最近&#xff0c;打卡APP需要这个数据&#xff0c;通过抓包后发现这个数据是固定的&#xff0c;获取很简单&#xff0c;但是数据太多&#xff0c;手动导入不显示&#xff0c;于是分析了json格式后果断通过脚本完成 【推荐】 《【MQTT】Esp32数据上传采集&#xff1a;最…

GitHub上有助于开发微信小程序的仓库

2023年9月30日&#xff0c;周六晚上 最近帮同学在GitHub找了一些开发小程序会用到的东西 目录 UI库WePY框架基于WePY框架的Demo微信小程序开发资源汇总 UI库 GitHub - Tencent/weui-wxss: A UI library by WeChat official design team, includes the most useful widgets/m…

CSS基础介绍2

CSS使用三种方式 方式1&#xff1a;在标签的style属性上设置CSS样式&#xff08;行内样式&#xff09; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>在标签的style属性上设置CSS样式</title>…

吉力宝:智能科技鞋品牌步力宝引领传统产业创新思维

在现代经济环境下&#xff0c;市场经济下产品的竞争非常的激烈&#xff0c;如果没有营销&#xff0c;产品很可能不被大众认可&#xff0c;酒香也怕巷子深&#xff0c;许多传统产业不得不面临前所未有的挑战。而为了冲出这个“巷子”&#xff0c;许多企业需要采用创新思维&#…

Sentinel学习(1)——CAP理论,微服务中的雪崩问题,和Hystix的解决方案 Sentinel的相关概念 + 下载运行

前言 Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 本篇博客介绍CAP理论&#xff0c;微…

Egg使用jwt拦截jtoken验证

安装 npm install egg-jwt注册插件 在config文件夹子下 plugin,js下 use strict;module.exports {//mysqlmysql: {enable: true,package: egg-mysql},//jwtjwt: {enable: true,package: egg-jwt} };使用中间件 在app文件下创建 middleware 文件夹 在middleware 文件下创建…

安卓 kuaishou 设备did和egid 学习分析

did和egid注册 接口 https://gdfp.ksapisrv.com/rest/infra/gdfp/report/kuaishou/android did 是本地生成的16进制 或者 获取的 android_id public static final Random f16237a new Random(System.currentTimeMillis()); public static long m19668a() { return f1623…

网络-Ajax

文章目录 前言一、Ajax优点&#xff1a;缺点&#xff1a; 二、使用步骤XNLHttpRequest对象完整代码 总结 前言 本文主要记录Ajax技术的简介&#xff0c;以及用法。 一、Ajax Ajax是一组用于在Web浏览器和Web服务器之间进行异步通信的Web开发技术。 它代表着Asynchronous Java…