.Net概念
① .Net包括.Net平台和.Net FrameWork框架(包含于.Net平台,提供环境保证平台运转),如果把.Net平台比作一个厨房,.Net FrameWork框架就是厨房里做菜的原料、工具、调料,基于.Net平台开发出的应用就是厨房里做出来的一道道菜。
② .Net FrameWork框架是.Net平台中不可缺少的一部分,它提供了一个稳定的运行环境来保证我们基于.Net平台开发的各种应用能够正常的运转。
③ .Net FrameWork由两部分组成:一个是CLR(公共语言运行时),另一个是.Net类库。
C#:.Net的主流编程语言,可以开发基于.Net平台的应用。
.Net的应用领域
① 桌面应用程序(Winform)
② Internet应用程序,ASP.NET。即网站开发
③ 手机开发
④ Unity3D游戏开发或虚拟现实
.NET两种交互模式
C/S:客户机服务器模式,客户端需要安装专用的客户端软件。如winform应用程序
B/S:浏览器服务器模式,客户机上只要安装一个浏览器。如Internet应用程序
IDE指的是开发工具
VS的组成部分
(1) 启动VS
① 双击图标
② 调出cmd,输入devenu
(2) 解决方案、项目及类之间的关系
解决方案包含项目,项目包含类
解决方案右键添加项目,项目右键可添加类
属性
.cs结尾文件暂时看做是类文件
解决方案:公司
项目:部门
类:员工
在视图里面找到解决方案资源管理器
(3)Program中的各个组成部分
引用命名空间:分辨同一定义名的不同类``
方法或者函数
Main函数是主入口,代码要是想要被执行,必须写在main函数里。
程序结构:
命名空间
项目名称
program类
Main函数
程序主入口
文件格式
program.cs 类文件可以用记事本打卡;
.sln:解决方案文件,里面包含解决方案信息,可以双击运行。
解决方案文件夹—》项目文件夹—》项目文件信息
.csproj:项目文件,里面包含着这个项目的信息,可以双击运行。
两行基本代码(Hello World):
书写代码需要注意的地方:
1、 代码中出现的所有标点都是英文半角 shift键快速切换中文半角和英文半角
Shift+空格 切换全角/半角
2.在C#代码中,每行代码的结束,我们都以分号结束,注意:这个分号也是英文半角的分号。
3. Console.WriteLine(“要打印的内容”);
Console,ReadKey();
暂停当前程序,等待用户按下任意键继续,按下的任意键将显示在控制台当中。
运行代码的方式:
- 点击绿色的启动按钮
- 使用快捷键F5
生成解决方案:
帮助我们排查语法错误
VS中的各种设置
设置行号
设置字体
创建多个项目
启动项目设置
项目的加载与装载(可停用暂时不需要的项目)
注释:
1)注销
2)解释
C#的三种注释符
1)、单行注释 //
2)、多行注释 /要注释的内容/
3)、文档注释 /// 多用来解释类或者方法
namespace _1注释符的使用
{
class Program
{
static void Main(string[] args)
{
//这行代码的作用是将Hello World打印到控制台中
Console.WriteLine("Hello World");
//这行代码的作用是暂停当前这个程序
Console.ReadKey();
}
/// <summary>
///这个方法的作用就是求两个整数之间的最大值
/// </summary>
/// <param name="n1">第一个整数</param>
/// <param name="n2">第二个整数</param>
/// <returns>返回比较大的那个数字</returns>
public static int GetMax(int n1, int n2)
{
return n1 > n2 ? n1 : n2;
}
}
/// <summary>
/// 这个类用来描述一个人的信息 从姓名 性别 年龄描述
/// </summary>
public class Person
{
public string Name
{
get;
set;
}
public int Age
{
get;
set;
}
public char Gender
{
get;
set;
}
}
}
VS中的常用快捷键
Ctrl+K+D:快速对齐代码
Ctrl+Z:撤销
Ctrl+S:保存
Ctrl+J:快速弹出智能提示
Shift+End Shift+Home
Ctrl+K+C 注释所选代码
Ctrl+K+U 取消对所选代码的注释
F1 转到帮助文档
折叠冗余代码:#Region和#EndRegion
变量
用来在计算机当中存储数据
存储整数100
数据类型:整数
在内存中开辟的空间应该是整数类型int
namespace _3变量
{
class Program
{
static void Main(string[] args)
{
变量类型 变量名;
变量名=值;
100
官方:声明或者定义了一个int类型的变量
//int number;//在内存中开辟了一块能够存储整数的空间
官方:给这个变量赋值
//number = 100;//表示把100存储到了这块空间内
//int n = 100;
//double d = 3.14;
//张三 李四 王五 赵六 adcdefg
string zsName = "张三";
string s = "";//字符串可以存储 空
//字符串 字符 羊肉串和羊肉
char gender = '男'; //只能是单字符,不能为空
//chanr c='';
decimal money = 5000m;//金钱类型,银行存钱
}
}
}
存储变量的语法:
变量类型 变量名 ;
变量名=值;
“=”在这并不表示等于,而是赋值的意思,表示把等号右边的值赋给左边的变量
声明并且给变量赋值的简写形式:
变量类型 变量名=值;
数据类型
1) 整数类型:int 只能存储整数,不能存储小数;
2) 小数类型:double 既能存储整数,也能存储小数,小数点后面的位数15-16位
3) 金钱类型:decimal:用来存储金钱,值后面需要加上一个m
4) 字符串类型:string,用来存储多个文本,也可以存储空,字符串类型的值需要被双引号引起来,这个双引号必须是英文半角状态下的双引号
5) 字符类型:char,用来存储单个类型,最多、最少只能存储一个字符,不能存储空。
字符类型的值需要用单引号引起来。英文半角状态下的单引号。
波浪线
1、 红色波浪线意味着代码中出现了语法错误
2、 绿色波浪线(警告线)说明语法并没有错,只不过提示你有可能会出现错误,但是不一定会出现错误。
变量的使用规则
先声明再赋值再使用,顺序不能乱
变量的命名规则:
1、 现阶段给变量起名字时都以字母开头;
2、 后跟任意字母、数字、下划线;
注意:
1、 自己起的变量名不能与c#系统中的关键字重复;
2、 在C#中大小写是敏感的
3、 同一个变量名不允许重复定义
namespace _5变量的命名规范
{
class Program
{
static void Main(string[] args)
{
int number_1 = 10;//字母开头可以跟的特殊字符只有下划线
}
}
}
给变量起名字时要满足两个命名规范:
1、 Camel命名规范。要求变量名首单词的首字母要小写,其余每个单词的首字母要大写。多用于给变量命名。
highSchoolStudent
2、 Pascal 命名规范:要求每个单词的首字母都要大写,其余字母要小写。多用于给类或方法命名。HighSchoolStuent
赋值运算符
=:表示赋值的意思,把等号右边的值,赋值给等号左边的变量
由等号连接的表达式称之为赋值表达式。
注意:每个表达式我们都可以求解除一个定值,对于赋值表达式而言,等号左边的变量的值,就是整个赋值表达式的值。
int number = 10;
namespace _6赋值运算符
{
class Program
{
static void Main(string[] args)
{
int n = 10;
n = 50;//重新赋值,一旦给一个变量重新赋值,老值就不存在了,取而代之的是新值
Console.WriteLine(n);
Console.ReadKey();
}
}
}
+号的作用
1、 连接:当+号两边有一边是字符串的时候,+号就起到连接的作用。
2、 相加:两边是数字的时候
namespace _7_号的使用
{
class Program
{
static void Main(string[] args)
{
//string name = "张三";
//Console.WriteLine("你好,"+name);
Console.WriteLine(5 + "5");
Console.ReadKey();
}
}
}
+号的两个练习
namespace _8_号的两个练习
{
class Program
{
static void Main(string[] args)
{
有个叫卡卡西的人在旅店登记的时候前台让他填一张表,
这张表里的内容要存到电脑上,
有姓名、年龄、邮箱、家庭住址、工资.
之后把这些信息显示出来
string name = "卡卡西";
int age = 30;
string email = "kakaxi@qq.com";
string address = "火影村";
decimal salary = 5000m;
//Console.WriteLine("我叫" + name+",我住在"+address+",我今年"+age+"岁了,我的邮箱是"+email+",我的工资每月"+salary);
//Console.ReadKey();
Console.WriteLine("我叫{0},我住在{1},我今年{2}岁看,我的邮箱是{3},我的工资每月{4}", name, address, age, email, salary);
Console.ReadKey();
int age = 18;
age = 81;
Console.WriteLine("原来你都" + age + "岁了呀");
Console.ReadKey();
//定义四个变量,分别存储一个人的姓名性别年龄电话。然后打印在屏幕上
//我叫x,今年x岁了,我是x生,我的电话是X。(电话号用什么类型,如010-12345)
string name = "李狗蛋";
int age = 21;
char gender = '男';
string tel = "010-12345";
Console.WriteLine("我叫{0},今年{1}岁了,我是{2}生,我的电话是{3}", name, age, gender, tel);
Console.ReadKey();
}
}
}
占位符
使用方法:先挖个坑,再填个坑。
注意事项:
1、 挖了几个坑,就应该填几个坑,如果多填了,没有影响
如果少填了,出现异常
2、输出顺序:按照挖坑顺序输出
namespace _10占位符
{
class Program
{
static void Main(string[] args)
{
int n1 = 10;
int n2 = 20;
int n3 = 30;
Console.WriteLine("第一个数字是{0},第二个数字是{1},第三个数字是{2}", n1, n2, n3);
//Console.WriteLine("第一个数字是:" + n1 + ",第二个数字是:" + n2 + "第三个数字是:" + n3);
Console.ReadKey();
//定义四个变量,分别存储一个人的姓名性别年龄电话。然后打印在屏幕上
//我叫x,今年x岁了,我是x生,我的电话是X。(电话号用什么类型,如010-12345)
string name = "李狗蛋";
int age = 21;
char gender = '男';
string tel = "010-12345";
Console.WriteLine("我叫{0},今年{1}岁了,我是{2}生,我的电话是{3}", name, age, gender, tel);
Console.ReadKey();
}
}
}
异常:
异常是指语法上并没有任何错误,只不过在程序运行的期间,由于某些原因出现了问题,使程序不能再正常的运行。
交换变量
namespace _11交换变量
{
class Program
{
static void Main(string[] args)
{
//定义两个变量,分别赋值10和5,写程序交换两个变量的值
int n1 = 10;
int n2 = 20;
int temp = n1;
n1 = n2;
n2 = temp;
Console.WriteLine("交换后,n1的值是{0},n2的值是{1}", n1, n2);
Console.ReadKey();
//交换两个int类型的变量,要求不使用第三方的变量
int n1 = 10;
int n2 = 20;
n1 = n1 - n2;//n1=-10 n2=20
n2 = n1 + n2;//n1=-10 n2=10
n1 = n2 - n1;
Console.WriteLine("交换后,n1的值是{0},n2的值是{1}", n1, n2);
Console.ReadKey();
}
}
}
接受用户的输入
namespace _12接受用户的输入
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入你的姓名");
//我们还想要接受你输入的名字
//接受用户在控制台的输入
string name = Console.ReadLine();
Console.WriteLine("您的姓名是{0}", name);
Console.ReadKey();
//练习:问用户喜欢吃什么水果(fruits),假如用户输入"苹果",则显示"哈哈,这么巧,我也喜欢吃苹果"
Console.WriteLine("美女,你喜欢吃啥子水果");
string fruit = Console.ReadLine();
Console.WriteLine("这么巧呀,我也喜欢吃{0}", fruit);
Console.ReadKey();
//练习:请用户输入姓名性别年龄,当用户按下某个键后在屏幕上显示:你好:××您的年龄是××是个×生
Console.WriteLine("请输入您的姓名");
string name = Console.ReadLine();
Console.WriteLine("请输入您的年龄");
string age = Console.ReadLine();
Console.WriteLine("请输入您的性别");
string gender = Console.ReadLine();
Console.WriteLine("您好{0},您的年龄是{1},您的性别是{2}",name,age,gender);
Console.ReadKey();
}
}
}
转义符
转义符指的就是一个’\’+一个特殊字符,组成了一个具有特殊意义的字符。
\n:表示换行
\”:表示一个英文半角的双引号
\t:表示一个tab键的空格
\b:表示一个退格键,放到字符串的两边没有效果
\r\n:windows操作系统不认识\n,只认识\r\n
\:表示一个 \
namespace _13转移符
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("我是弟弟\n我是垃圾");
Console.WriteLine("我想在这句话中输出一个\"\"英文半角的双引号");
string name1 = "李狗蛋";
string name2 = "王尼玛";
string name3 = "JOJO";
string name4 = "王小明";
Console.WriteLine("{0}\t\t{1}", name1, name2);
Console.WriteLine("{0}\t\t{1}", name3, name4);
Console.WriteLine("学习编程\b有\b鸡儿用?学了不一定会,会了不一定能找到工作,找得到工作不一定能买得起房,买得起房子不一定娶得起老婆,娶得起老婆不一定生得起儿子巴拉巴拉");
string str = "今天天气贼拉好,处\r\n处好风光";
System.IO.File.WriteAllText(@"C:\Users\Y\Desktop\1234.txt", str);
Console.WriteLine("写入成功!!");
Console.ReadKey();
char c = '\b';//\在里面起到了一个转义的作用
string path = @"C:\Users\Y\Desktop";
Console.WriteLine(path);
Console.WriteLine(@"今天天气好晴朗
处处好风光");
Console.ReadKey();
}
}
}
@符号
1、 取消\在字符串中的转义作用
2、 将字符串按照编辑的原格式输出
算数运算符
namespace _14算数运算符
{
class Program
{
static void Main(string[] args)
{
//int n1 = 10;
//int n2 = 3;
//int result = n1 / n2;
//Console.WriteLine(result);
//Console.ReadKey();
//演示:某学生三门课成绩为 语文90 数学80 英语67 编程求总分和平均分
//int chinese = 90;
//int math = 80;
//int english = 67;
//Console.WriteLine("总成绩是{0},平均成绩是{1}", chinese + math + english, (chinese + math + english) / 3);
//Console.ReadKey();
//计算半径为5的圆的面积和周长并打印出来.(pi为3.14)面积:pi*r*r;perimeter(周长)
//等号两边的数据类型必须一样
//int r = 5;
//double area = 3.14 * r * r;
//double perimeter = 2 * 3.14 * r;
//Console.WriteLine("圆的面积是{0},圆的周长是{1}", area, perimeter);
//Console.ReadKey();
//某商店T恤的价格为35元一件,裤子的价格为120元一件,小明在该店买了三件T恤和两条裤子,请计算并显示小明应付多少钱:
//打88折后呢
//int price_tShirt = 35;
//int price_trousers = 120;
//Console.WriteLine("小明应付{0}元", price_tShirt * 3 + price_trousers * 2);
//double totalmoney = price_tShirt * 3 + price_trousers * 2;
//Console.WriteLine("打折后小明应付{0}元", totalmoney * 0.88);
//Console.ReadKey();
// int-->double
//int number = 10;
//double d = number;//自动类型转换 隐式类型转换
//double d = 303.6;
语法:
(待转换的类型)要转换的值;
double-->int //强制类型转换 显示类型转换
//int n =(int)d;
//Console.WriteLine(n);
//Console.ReadKey();
}
}
}
@符号
1、 取消\在字符串中的转义作用
2、 将字符串按照编辑的原格式输出
类型转换
1、隐式类型转换
我们要求等号两边参与运算的操作数的类型必须一致,如果不一致,满足下列条件会发生自动类型转换,或者称之为隐式类型转换。
条件1两种类型兼容
例如:int和double 兼容(都是数字类型)
1目标类型大于源类型
例如:double>int 小的转大的
2、显示类型转换
1、 两种类型相兼容 int -->double
2、 大转小 double —>int
语法:
(待转换的类型)要转换的值;
总结:
自动类型转换 :int -->double
显示类型转换:double -->int
namespace _15类型转换
{
class Program
{
static void Main(string[] args)
{
//int n1 = 10;
//int n2 = 3;
//double d = n1 * 1.0 / n2;
//Console.WriteLine("{0:0.00}",d);//保留两位小数
//Console.ReadKey();
int n1 = 5;
//double n1 = 5;
//int n2 = 2;
//double d = n1 / n2;
//Console.WriteLine(d);
//Console.ReadKey();
}
}
}
第一周计划制定有些仓促,没有提前浏览视频内容。if结构内容过多,调整到下周学习。