一、C#的发展历史
C#是.net开发平台支持的多种语言中的一门编程语言。是Microsoft专门为.net
平台开发的一种新的编程语言,语法类似于C语言。
1998年,Delphi设计的第一个C#语言版本
2002年,发布了第一个C#版本(1.0)
二、C#能干什么
1.Windows窗口应用程序。Microsoft office,Windows外观应用程序(按钮,工具)
2.web应用程序(邮箱、论坛、网站)
3.网络数据库等应用程序
4.web服务以及各种分布应用程序
三、C#程序结构
一个C#程序主要包括以下部分:
1.命名空间声明
2.一个class
3.方法
4.属性
5.Main方法
6.语句,表达式
7.注释
using System;–>引入System命名空间(C语言:#include<stdio.h>)
using System.Collections.Generic;–>引入C#泛型命名空间
using System.Linq;–>主要作用是对集合进行查询
using System.Text;–>输出文本类型
using System.Threading.Tasks;–>异步操作
namespace cxsw–>创建命名空间
{
class demo1–>创建一个名为demo1的类
{
static void Main(string[] args)–>main方法,程序的入口
{
}
}
}
main方法的四种写法:
1)static void Main(){}string[] args
2)static void Main(){}
3)static int Main(String[] args){}
4)static int Main(){}
注意:
C#的主方法名第一个字母必须大写:Main(),且必须有static关键字
四.从控制台输出:
1.输出字符串常量
Console.WriteLine(“字符串常量”);
2.输出单个变量
Console.WriteLine(变量);
3.使用连接符(+)混合输出字符串和变量
Console.WriteLine(“字符串”+变量);
4.使用格式占位符混合输出字符串和变量
Console.WriteLine(“字符串{0},{1}”,表达式1,表达式2);
五.从控制台输入:
1)输入字符串类型
定义一个字符串类型的变量,接受用户输入的字符串
String name;
给用户一个提示,提示用户进行输入
Console.WriteLine(“请输入姓名:”);
将用户输入的内容存入变量中
name=Console.Readline();
2)把字符串转化成数字
age=int.Parse(Console.Readline());
六.注释
注释方式:
单行注释://
多行注释:/……/
文档注释:/// xml注释
using System;namespace cxsw { //创建命名空间
class Test101HelloWorld { //创建类
static void Main(string[] args) { //主函数
//输出
Console.WriteLine(“今天第一天”); //控制台输出
int i = 1;
Console.WriteLine(i); //输出变量
Console.WriteLine(“i的值为:”+i);
Console.WriteLine("1+1={0},22={1}",1+1,22);
//输入
string name;
Console.WriteLine(“请输入你的名字:”);
name = Console.ReadLine();
Console.WriteLine(“用户输入的姓名为:”+name);
//把字符串转换为数字
Console.WriteLine(“请输入要转换为字符串的数字:”);
int age = int.Parse(Console.ReadLine());
Console.WriteLine(“被转换为数字的字符串为:”+age);
//Console.ReadKey();//针对VS.NET用户的
//这使得程序会等待一个按键的动作,防止程序从VisualStudio.NET
//启动时屏幕会快速运行并关闭的问题
//也就是说加上他程序执行最后会等待你按键才退出
}
}}
第二章:数据类型常量变量
一.数据类型
(1)整数类型
数学上的整数可以从负无穷到正无穷,但是计算机的存储单位是有限的,
所以计算机语言提供的整数类型的值总是一定范围之内的。
C#有八种数据类型:
短字节型(sbyte),字节型(byte),短整型(stort),无符号短整型(ustort),
整型(int),无符号整型(unit),长整型(long),无符号长整型(ulong)。
(2)字符类型
除了数字,计算机处理的信息还包括字符。字符主要包括数字字符,英文字符,
表达式字符等,C#提供的字符类按照国际上公认的标准,采用Unicode字符集。
字符型书数据占用两个字节的内存,可以用来存储Unicode字符集当中的一个字符(
注意,只是一个字符,不是一个字符串)。
(3)实数类型
C#有三种实数类型:float(单精度型),doudle(双精度型),decimal(十进制小数型)。
(4)布尔类型
布尔类型是用来表示“真”和“假”两个概念的,在C#里用true和false来表示。
1.常用数据类型
整数:(4种)
int(32位整数)、short(16)、long(64)、byte(8)
浮点型:(3种)
float(32位浮点数,精确到小数点后7位)
double(64位浮点数,精确到小数点后15~20位)
decimal(128位浮点数,精确到小数点后28~29位)
布尔型:bool true、false
字符型:char(单个字符,用单引号存储)
字符串类型:string(双引号)
2.数据类型转换
数据类型之间的大小关系:
byte–>short–>int–>float–>double–>decimal
1.隐式类型转化
由低类型向高类型的转化
注意:转化的两种数据类型之前必须兼容
2.显式类型转化(强制类型转化)
由高类型向低类型的转化
1)利用Parse方法进行转化
double d1=2.23;
int i1=int.Parse(d1);
2)使用convert提供的类进行强制转化
语法:
ToDouble(变量)
double d = 23.5;
int i;
i = (int)d;
3.引用类型
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;
namespace Csp个人课程备课.第二章数据类型变量{
class Test201数据类型
{
static void Main(string[] args)
{
//数据类型
int age;//用来表示年龄
double score;//用来表示分数
char gender;//用来表示性别
bool b;//用来表示真假
}
}}
二.常量
语法:
const 数据类型 变量名 = 常量值;
在声明和初始化变量的时候,在变量前加上关键字const,就可以把一个变量指定为常量。
在使用过程当中,常量值不会发生变化,后期不允许修改常量值,常量的命名规范和变量是一样的。
using System;namespace Csp个人课程备课.第二章数据类型变量{
class Test202 {
const double pi = 3.14; //定义常量
static void Main(string[] args) {
Console.WriteLine(pi);
}
}}
三.变量
1.变量的声明
变量类型 变量名;
int num;
变量类型 变量名 = 变量值;
房间类型 房间号 = 入住客人;
2.变量的命名
1)驼峰命名法:最中间单词的首字母是大写的
demodirect–>demoDirect
2)帕斯卡命名法:每个单词的首字母都大写
demodirect–>DemoDirect
3.变量的命名规则
1)由字母、数字、下划线组成,不能以数字开头
2)不能用保留字作为变量名(console)
3)建议用英文单词
4)变量名区分大小写
4.注意事项:
1)未经声明的变量不能使用
2)未经赋值的变量不能输出
3)可以一次性声明多个变量
4)可以先声明再赋值,也可以声明的同时初始化
using System;namespace Csp个人课程备课.第二章数据类型变量{
class Test203 {
static void Main(string[] args) {
//定义在函数体当中的变量为局部变量 只能在当前函数体内使用
//定义变量
int a;
a = 10;
Console.WriteLine(“变量a的值为:”+ a);
int b = 20;
Console.WriteLine(“变量b的值为:”+b);
b = 40;
Console.WriteLine(“变量b修改后的值为:”+ b);
int c, d;
c = 3;
d = 4;
Console.WriteLine(“变量c的值为:”+c+“,变量d的值为:”+d);
int e = 1, f = 2;
Console.WriteLine(“变量e的值为:”+e+“,变量f的值为:”+f);
}
}}
using System;namespace Csp个人课程备课.第二章数据类型变量{
class Test204 {
static int i; //定义在函数体外的变量为全局变量 可以在当前文件中使用
static void Main(string[] args)
{
//定义在函数体当中的变量为局部变量 只能在当前函数体内使用
//定义变量
int a = 10;
Console.WriteLine(“变量a输出:”+a);
i = 30;
Console.WriteLine("常量输出:"+i);
}
void eat(){
//a = 11; //提示未定义访问不到
i = 31; //不提示错误证明可以访问到
}
}}
四.注意事项
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;
namespace Csp个人课程备课.第二章数据类型变量{
class Test205{
static void Main(string[] args)
{
short s = 1;
int i = 2;
long l = 3;
char ch = ‘a’;
Console.WriteLine(s + " " + i + " " + l + " " + ch);
//i = 2200000000;//选用数据类型时 注意是否超出范围
//如果超出范围则错误
float ff = 3.14f; //浮点数类型后面加f
double dd = 3.14;
Console.WriteLine(ff + " " + dd);
//char类型
char cs = 'a';//char类型的值要用单引号引起来
char cc = ' ';//char类型的值不能啥也没有哪怕是一个空格也可以
char ccc = '\n';//表示转义字符
char c1 = (char)97;//ASCII码
Console.WriteLine(cs+" "+cc+" "+ccc+" "+c1);
//数据类型转换
short st1 = 2;
int it1 = st1;//隐式转换
Console.WriteLine("it1的值为:"+it1);
double db1 = 25.5;
int it2 = (int)db1;//强制转换
Console.WriteLine("it2的值为:"+it2);
}
}}
五.ASCII码表
六.转义字符
第三章:运算符
一.算数运算符
/ % ++ –
+号的用法:
1)对两个数字进行相加
2)字符串的连接
++、–复合运算:
1)++在前:先运算,后赋值
2)++在后:先赋值,后运算
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;
namespace Csp个人课程备课.第三章运算符和表达式{
class Test301算数运算符{
static void Main(string[] args) {
int A = 10, B = 5;
//算数运算符的各种运算
Console.WriteLine(“A=10,B=5”);
Console.WriteLine(“A+B=”+(A + B));
Console.WriteLine(“A-B=”+(A - B));
Console.WriteLine(“A*B=”+(A * B));
Console.WriteLine(“A/B=”+(A / B));
//取模,表达式中书写了A%%B,其中两个%表示输出一个%
Console.WriteLine(“A%B=”+(A % B));
int a = 1, b = 2, c = 3, d = 0;
Console.WriteLine("a,b,c的值为:"+a+" "+b+" "+c);
Console.WriteLine("a++的值为:"+(a++));
Console.WriteLine("a的值为:"+a);
Console.WriteLine("++a的值为:"+(++a));
Console.WriteLine("a的值为:"+a);
a = 1; b = 2; c = 3; d = 0;
//a = 3; b = 3; c = 3;
// 1 2 3 3 3
d = a++ + a + ++b + b + ++a; //在下一次计算时才会得到所有加一后的值
Console.WriteLine("d的值为:"+d);//12
}
}}
二.关系运算符
(比较是否相等) != > < >= <=
1
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;/**
三.逻辑运算符
&& || !
1
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;/**
四.赋值运算符
(赋值) += -= = /= %=
1
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;/*
五.位运算
&(按位与) |(或) ^(异或) ~(非) <<(左移) >>(右移)
1
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;/**
&(按位与) |(或) ^(异或) ~(非) <<(左移) >>(右移) >>>(无符号右移)
二进制
十进制转换二进制
13 二进制 1101
2048 1024 512 256 128 64 32 16 8 4 2 1 权次方
1 1 0 1
154 1 0 0 1 1 0 1 0
685 1 0 1 0 1 0 1 1 0 1
1250 1 0 0 1 1 1 0 0 0 1 0
243 1 1 1 1 0 0 1 1
684 1 0 1 0 1 0 1 1 0 0
60 1 1 1 1 0 0
//如243可以减128用得到就是1余数再往后减可以减就是1,不够减就是0
符号位 1代表负数 0 代表 正数
**/namespace Csp个人课程备课.第三章运算符和表达式{
class Test305位运算符
{
static void Main(string[] args) {
int a = 60;
//二进制:111100
int b = 13;//二进制:001101 1101前面的0是补上去的 正数补0负数补1 为了和要比较的二进制位数一致
int c = 0; //
c = a & b; // 二进制:001100 相对应的位都为1时结果为1
Console.WriteLine©;//12
c = a | b;//二进制:111101相对应的只要有一个为1结果为1 111101
Console.WriteLine(c);//61
c = a ^ b;//二进制:110001相对应的位 相同为0 不同为1
Console.WriteLine(c);//49
c = ~a; //二进制:000011 相对应的位 取反
Console.WriteLine(c);//-61
c = a << 2; //二进制:11110000
Console.WriteLine(c);//240
c = -a >> 60;//二进制:二进制 32个1
Console.WriteLine(c);//-1
}
}}
六.条件运算符
(三元运算符) 表达式1?表达式2:表达式3 -> 3>2?3:2
1
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;/**
1? 2: 3
1:条件 2:条件成立的话要做的事 3.条件不成立要做的事**/namespace Csp个人课程备课.第三章运算符和表达式{