C#语言基础
第一部分 了解C#
一、C#的定义及其特点
C#是微软公司在2000年7月发布的的一种全新且简单、安全、面向对象的程序设计语言,是专门为.NET的应用而开发的语言。它吸收了C++、Visual Basic、Delphi、Java等语言的有点,体现了当今最新的程序设计技术的功能和精华。NET框架为C#提供了一个强大的、易用的、逻辑结构一直的程序设计环境。同时,公共语言运行时(Common Language Runtime)为C#程序语言提供了一个托管的运行时环境,是程序比以往更加稳定、安全。其特点有:
●语言简洁
●保留了C++的强大功能
●快速应用开发功能
●语言的自由性
●强大的Web服务器控件
●支持跨平台
●与XML相融合
二、Visual Studio NET的集成开发环境
.NET开发语言都采用了统一的集成开发环境Visual Studio.NET。下面加以介绍,
(1) Visual Studio2012起始页
启动Visual Studio.NET后,首先看到一个起始页。在起始页可以打开已有项目或建立新的项目。
)
(2)新建的VisualC#.net项目
在Visual Studio.NET集成开发环境中,通过执行“文件”→“新建”→“项目”菜单命令,将会弹出“新建项目”对话框中,可以选择不同的编程语言来创建各种项目,这些语言将共享Visual Studio NET的集成开发环境,如图所示
第二部分C#语言基础
首先要了解C#项目的组成部分,对C#开发环境有大致概念。
一C#项目的组成结构:
1、项目结构:
1.1项目后缀
.config—配置文件(存放配置参数文件)
.csproj项目文件(管理文件项)
.sln—解决方案文件(管理项目)
.cs源文件(程序代码)
注:后缀不同代表文件类型也不同,这些文件后缀类型会在“解决方案资源管理器”中看到。
1.2:函数的四要素:名称,输入,输出,加工
1.3主函数,输出语句,输入语句:
Static void Main(string[]args)//下划线部分可以自己指定
{
主函数内容
}
Console(控制台).ReadKey();//输出语句
Console.Readline();//输入语句
Console.WriteLine();//输出语句,自动换行
Console.Write();//输出语句,不自动换行
1.4
namespace ConsoleApplicationl 命名空间
class 类
static void Main(string[] args)方法
1.5快捷键的使用:
Alt+→提示,需要执行程序时点击启动或Ctrl+F5
Ctrl+k,然后按ctrl+c,注释本行
Ctrl+k,然后按ctrl+u,取消注释
Shift+delete 一删删一行
Ctrl+X 剪切一行
Ctrl+shift+space 将光标放在方法函数括号里面时使用,显示重载
1.6注意事项
1,注释的三种方式:
//表示注释一整行
/**/注释一段区域
///放在函数上面使用,给函数加注解
2,在一行中声明相同类型的多个变量之间用逗号分开。
例:int a,b:(声明变量类型,用逗号隔开)
3,同一语句中,不能呢个对同一个变量名声明成同一个类型两次
Int a=34 ; Int a=22;(错误)
4,using表示程序引用的库,以下的system等,表示控制台这些库由.netframework
提供
5,新建项目时,自动创建一个命名空间,即namespace命名空间
二:数据类型
|
|
C#语言 |
.NET类型 (通用语言) |
大小(字节) |
值区间 |
基本 数据 类型
|
整型 |
byle |
Byte |
1 |
0···255 |
short |
Int16 |
2 |
-32768—32767负的2的1 |
||
int |
Int32 |
4 |
负的2的31次方正的2的减1 |
||
long |
Int64 |
8 |
负的2的63次方到正的2的63次方减1 |
||
浮点型 |
float |
Single |
4 |
|
|
Double(默认小数) |
Double |
8 |
|
||
decimal |
Decimal |
16 |
|
||
字符型 |
char |
Char |
2 |
任意字符 |
|
布尔型()只允许放对错) |
Bool(判断是否成立) |
Boolean |
1 |
True或false |
|
引用类 |
字符串型 |
string |
String |
|
字符序列 |
值类型 |
日期时间 |
DateTime |
|
|
|
枚举类型 |
ENUM |
|
|
|
|
结构类型 |
struct |
|
|
|
*无符号整形2倍于有符号整形加1 uint=2 *int+1
*无符号整形 : sbyte,uint,ushort,ulong’
*一个汉字占用两个字符,一般用英语或者拼音
三;引用类型
1,字符串类型
String等同于字符型,长度较长,定义是用双引号
例:string a =“hello”;string b=“h”
class Program
{
//程序的入口
static void Main(string[] args)
{
//输出语句,打印不换行
//Console.Write("这是我的第一个C#程序!");
//输出语句,打印完成换行
//Console.WriteLine("Hello world!");
//输入语句,等待直到接收到回车命令为止,获取一整行内容
//string s = Console.ReadLine();
//一个等号表示赋值号
//Console.WriteLine(s);
//Console.ReadLine();
注意:
1.大小写敏感;
2.所有的符号全都用英文;
3.不要漏掉;。
2,类类型
Object所有其他类型的最终基类
3,接口类型
Interface
4,数组类型
一维和多维数组,如int[]和int[,,,,]
四:C#转义字符:
\’ 单引号 \” 双引号 \\ 反斜杠 \0 空
\a 警告(产生峰鸣) \b 退格 \f 换页 \n 换行
\r 回车 \t 水平制表符 \v 垂直制表符
五:变量,常量
1:变量名的命名规则:
1.1:变量名组成:字母,数字,下划线,@,汉字。
1,2:首字母只能用字母,下划线,@,汉字
1,3:不能与关键字重名
2:变量的定义:
数据类型 变量名 [=值]; //[]内的值可以不写
例子:int a=1;
3:变量名前加关键字(不能赋值,只能取值):const
例子:const int a=1;
六:基本的类型转换:
1,自动转换(隐式转换)--从值类型转换到引用类型时候
2,强制转换(显式转换)--从引用类型转换到值类型时候,或者从浮点型转换到整形
当从一个引用类型转换到值类型时,必须引用类型中的数据元素,能够转换成值类型的容量范围内的数据才行,否则不能转。
1>:用();
例子:int a;double b=12.3;a=(int)b;
2>:用convert;
例子: int a; float c; double b=12.3;
a=convert.ToInt32(b);
c=convert.Tosingle(b);
3>:用parse;
例子: int a; double b=12.3;
a=int.parse(b);
七:运算符
分类 |
符号 |
解释 |
优先级 |
算数 |
++ -- |
加加 减减 |
由高到低,即执行顺序由上到下.(圆括号的优先级最高) |
*/% |
乘 除 取余 |
||
+ - |
加 减 |
||
关系 |
> < >= <= |
大于 小于 大于等于 小于等于 |
|
== != |
等于 不等于 |
||
逻辑 |
&& |
与(并且) |
|
|| |
或 |
||
! |
非(注:优先级在此表的最顶层) |
||
条件运算符 |
?: |
惟一的一个三元运算符 如果 |
|
赋值 |
= += -= *= /= %= |
如:x-=4.即x=x-4; |
1:前++和后++的区别(-- 一样)加加在前,先运算后赋值;加加在后面时,先赋值在运算
int a = 10,b=a++;
Console.WriteLine("a=" + a);
Console.WriteLine("b=" + b);结果:a=10 b=11
int a = 10, b=++a;
Console.WriteLine("a=" + a);
Console.WriteLine("b=" + b);结果:a=11 b=11
2.条件运算符:
例子:x=(x>12)?1:2; //假如x>12,那么就返回1,否则就返回2
一、算数运算符:
+ - * / % ++ --
注意:
1.做除法运算的时候,如果两个操作都是整数,则运算之后的结果也是整数。
2.做算数运算的时候,如果两个被操作的数不是同一类型,则会在运算的时候会自动进行类型转换。
% 模 取余的用途
1.判断a是不是b的倍数(是否能够整除)====>a%b是否==0
2.判断a的个位是不是b====>a%10是否==b
3.把数变成某个范围之内的数(利用余数一定比除数小的定理,比如十六进制里面最大的单个数是F(15))
++ --
int a =5;
int b= a++; ====>可以写成int b =a; a = a+1;
int c = ++a;====>可以写成a = a+1; int c =a;
运算出来的结果就是
b = 5;
c = 7;
注意:++ --这两种运算只能应用于变量(5++是不对的!!常量也是不可以使用的!!)
二、关系运算符:
== != > < >= <=
关系运算符运算结果统统是bool型(结果不是Ture就是False)
int a = 5;
int b = 6;
Console.WriteLine(a == b); ====>False
Console.WriteLine(a != b); ====>True
Console.WriteLine(a > b); ====>False
Console.WriteLine(a < b); ====>True
Console.WriteLine(a >= b); ====>False
Console.WriteLine(a <= b); ====>True
注意:== 不能写成 =(一个=是赋值的意思)
三、逻辑运算符:
&& || !
&&====>两个条件都成立,结果为True,否则False
||====>两个条件只要有一个成立,结果为True,两个都不成立为False
!====>将原来的结果取相反的(若本来为True,取反就是False)
四、其他运算
= ====>赋值运算,将后面的值赋给左侧的变量。(注意:只能是变量)
+= -= *= /= %= ====>复合运算符(例:a += b;(意思是a = a +b;))
条件运算符小练习
老狼老狼几点了? 若是上午出现am,下午出现pm
若是下午,需要报时的时候减去12
Console.Write("老狼老狼几点了?");
int time = int.Parse( Console.ReadLine());
string s = time > 12 ? (time-12)+"pm" : time+"am";
Console.WriteLine(s);
Console.ReadLine();
1.键盘键入三个数,找出来最大的数。
Console.Write("输入一个a值");
double a = double.Parse(Console.ReadLine());
Console.Write("输入一个b值");
double b = double.Parse(Console.ReadLine());
Console.Write("输入一个c值");
double c = double.Parse(Console.ReadLine());
double d =a>b ? a:b;
double e = d > c ? d : c;
double e = (a > b ? a : b) > c ? (a > b ? a : b) : c;
Console.WriteLine("最大的数是"+e);
Console.ReadLine();