C#语言基础
第一部分 了解C#
C#是微软公司在2000年7月发布的一种全新且简单、安全、面向对象的程序设计语言,是专门为.NET的应用而开发的。体现了当今最新的程序设计技术的功能和精华。.NET框架为C#提供了一个强大的、易用的、逻辑结构一致的设计环境。其特点:
- 语言简洁
- 保留了C++的强大功能;
- 快速应用开发功能;
- 语言的的自由性;
- 强大的Web服务器控件;
- 支持跨平台;
- 与XML相融合;
第二部分 C#语言基础;
一、C#项目的组成结构;
1、项目后缀
.config——配置文件(存放配置参数文件)
.csproj——项目文件(管理文件项)
.sln——解决方案文件(管理项目)
.cs——源文件(程序代码)
注:后缀不同代表文件类型也不同,这些文件后缀类型会在“解决方案资源管理器”中看到。
2、函数的四要素:名称,输入,输出,加工。
3、主函数,输出语句,输入语句:
//命名空间
namespace ConsoleApplication1
{//类
class Program
{
//程序的入口
static void Main(string[] args)
{
//输出语句,打印不换行
Console.Write("这是我的第一个C#程序!");
//输出语句,打印完成换行
Console.WriteLine("Hello world!");
//输入语句,等待直到接收到回车命令为止,获取一整行内容
//一个等号表示赋值号
string s = Console.ReadLine();
Console.WriteLine(s);
Console.ReadLine();
}
}
}
注意:●输出:
Console.WriteLine("这是我的第一个程序。");
Console.WriteLine("这是第二行代码。");
Console.Write("这是要输出的文字。");注意:没有换行
注意:
1.大小写敏感;
2.所有的符号全都用英文;
3.不要漏掉;。
●输入:
string s = Console.ReadLine();
//这句话的意思是从控制台程序读取一整行内容放到s这个容器里面
Console.WriteLine("你刚刚输入的是:"+s);
string -字符串类型
s -变量名
= -赋值
Console.ReadLine(); - 从控制台程序读取一整行
4、快捷键的使用
● Alt + →提示,需要执行程序时点击启动或Ctrl+F5;
● ctrl + K(ctrl + E), 然后按ctrl + C,注释本行(软件工具栏中有快捷图标);
● ctrl + K(ctrl + E), 然后按ctrl + U,取消注释(软件工具栏中有快捷图标);
● Shift + delete,一删删一行;
● Ctrl + X,剪切一行;Ctrl + Z,回复;
● Ctrl + Shift + Space,将光标放在方法函数括号里面时使用,显示重载
5、注意事项
(1)、注释和[取消注释]:
● 选中相应的行,点击工具栏中的注释选中行[取消注释选中行];
● 选中相应的行,使用快捷键:Ctrl+K Ctrl+C [Ctrl+K Ctrl+U]
● 手动注释:在不要的行前面加//(注释一整行)
● 注释其中一段代码:/*这里面是代码 */
● 注释的作用://这两行是输出的功能
技巧:
● 写的代码尽量使用智能感知功能;
● 先写总体,再完善细节;
● 自动完成单词功能。Alt+→
例如:/*表示注释一段内容
Console.Write("请输入你的姓名:");
string name = Console.ReadLine();
Console.Write("请输入你的年龄:");
string age = Console.ReadLine();
Console.Write("\n");
//第一种方式
//Console.WriteLine("你的姓名是"+name+",今年"+age+"岁了。");*/
//加号在遇到string类型的时候表示拼接
//第二种方式
//Console.WriteLine("你的姓名是{0},今年{1}岁了。",name,age);
//Console.ReadLine();
(2)、在一行声明相同类型的多个变量之间用逗号分开。
例:int a, b;//声明变量类型,用逗号隔开
(3)、同一语句中,不能对同一个变量名声明成同一类型两次。
例:int a = 4; int a = 5;//错误
综上练习题:案例:输入姓名,年龄,单位,
整合成一个流畅的句子显示出来。
主要程序:Console.Write ("请输入你的姓名:");
string name = Console.ReadLine();
Console.Write("请输入你的年龄:");
string age = Console.ReadLine();
Console.Write("请输入你的单位:");
string danwei = Console.ReadLine();
Console.WriteLine("你的姓名是"+a+",今年"+b+"岁了,在"+c+"实训");
Console.ReadLine();
"你的名字是***,今年**岁了,在**实训。"将a,b,c代入***。
"你的名字是"+a+",今年"+b+"岁了,在"+c+"实训。"
二、数据类型
|
大类 |
小类 |
C#语言 |
.net语言(通用语言) |
说明 |
大小(字节) |
值区间 |
|
基本数据类型(值类型) |
整型 |
sbyte |
SByte |
8位有符号整数 |
1 |
-128~127(负的2的7次方~正的2的7次方减1) |
|
short |
Int16 |
16位有符号整数 |
2 |
-32768~32767(负的2的15次方~正的2的15次方减1) |
||
|
int |
Int32 |
32位有符号整数 |
3 |
(负的2的31次方~正的2的31次方减1) |
||
|
long |
Int64 |
64位有符号整数 |
4 |
(负的2的63次方~正的2的63次方减1) |
||
|
byte |
Byte |
8位无符号整数 |
1 |
0~255 (0~2的8次方减1) |
||
|
ushort |
UInt16 |
16位无符号整数 |
2 |
(0~2的16次方减1) |
||
|
uint |
UInt32 |
32位无符号整数 |
3 |
(0~2的32次方减1) |
||
|
ulong |
UInt64 |
64位无符号整数 |
4 |
(0~2的64次方减1) |
||
|
浮点型 |
float |
Single |
32位单精度浮点数 |
4 |
1.5 × 10−45 到 3.4 × 1038 |
|
|
double |
Double |
64位双精度浮点数 |
8 |
5.0 × 10−324 到 1.7 × 10308 |
||
|
decimal |
Decimal |
128精确浮点数 |
16 |
1.0 × 10−28 到大约 7.9 × 1028 |
||
|
字符型 |
char |
Char |
16位Unicode字符,放在''里的是字符 |
2 |
任意字符 |
|
|
布尔型 |
bool |
Boolean |
表示true或者false |
1 |
True或Flase |
|
|
日期时间 |
datetime |
DateTime |
||||
|
结构体 |
struct |
Struct |
||||
|
枚举类型 |
enum |
Enum |
||||
|
引用类型 |
字符串类型 |
string |
String |
字符序列 |
||
|
类 |
||||||
|
数组 |
||||||
|
集合 |
1、基本数据类型:值类型
⑴、整数类型:int(最常用)
int a = 2;
⑵、浮点型:double(最常用)是C#默认小数类型,float用需加后缀f,decimal用需加后缀m。
double b = 3.14;
a = (int)b;
float c = 3.14f;
decimal d = 3.14m;
⑶、布尔型:用于判断,只允许放TRUE或者FALSE。
bool e = false;
e = true;
2、引用类型:字符串型string,长度较长,定义时用双引号。
string ss = "Hello world!";
Console.WriteLine(e);
3、类类型
object 所有其他类型的最终基类
4、接口类型:interface
三、C#转义字符
\’ 单引号 \” 双引号 \\ 反斜杠 \0 空
\a 警告(产生峰鸣) \b 退格 \f 换页 \n 换行
\r 回车 \t 水平制表符 \v 垂直制表符
四、变量、常量
1、变量名的命名规则:
●变量名组成:字母,数字,下划线,@,汉字。
●首字母只能用字母,下划线,@,汉字
●不能与关键字重名
2、变量的定义:
数据类型 变量名 [=值]; //[]内的值可以不写
例子:int a=1;
注意:int a, b;//声明变量类型,用逗号隔开
int a = 4; int a = 5;//错误
3、常量:只能够取值,不能重新赋值
const int f = 5;
f = 7;错误,不能重新赋值
4、变量名前加关键字(不能赋值,只能取值):const
例子:const int a=1;
五、基本的类型转换
1、自动转换(隐式转换)--从值类型转换到引用类型时候
2、强制转换(显式转换)--从引用类型转换到值类型时候,或者从浮点型转换到整形
当从一个引用类型转换到值类型时,必须引用类型中的数据元素,能够转换成值类型的容量范围内的数据才行,否则不能转。
⑴、用(),注:在被转换的数据左边加上小括号:(要被转换成的数据类型);
例子:int a;double b=12.3;a=(int)b;
⑵、用convert;
例子: int a; float c; double b=12.3;
a=convert.ToInt32(b);
c=convert.Tosingle(b);
⑶、用parse,常用;
例子: int a; double b=12.3;
a=int.parse(b);
注:int a = 2;
string s = a.ToString();
例子:输入三个数,求它们的和、差、积、商。
Console.WriteLine("请输入a=");
double a = double.Parse(Console.ReadLine());
Console.WriteLine("请输入b=");
double b = double.Parse(Console.ReadLine());
Console.WriteLine("两个数的和为{0},两个数的差为{1},两个数的乘积为{2},两个数的商为{3}",a+b,a-b,a*b,a/b);
Console.ReadLine();
六、运算符
|
分类 |
符号 |
解释 |
优先级 |
|
算数 |
++ -- |
加加 减减 |
由高到低,即执行顺序由上到下.(圆括号的优先级最高) |
|
*/% |
乘 除 取余 |
||
|
+ - |
加 减 |
||
|
关系 |
> < >= <= |
大于 小于 大于等于 小于等于 |
|
|
== != |
等于 不等于 |
||
|
逻辑 |
&& |
与(并且) |
|
|
|| |
或 |
||
|
! |
非(注:优先级在此表的最顶层) |
||
|
条件运算符 |
?: |
惟一的一个三元运算符 如果 |
|
|
赋值 |
= += -= *= /= %= |
如:x-=4.即x=x-4; |
1、算数运算符:
⑴、+ -
int a = 2; int b = 5;
Console.WriteLine(a+b)
⑵* / %
int a = 10 % 3;
Console.WriteLine(a);
Console.ReadLine();
注意:
●做除法运算的时候,如果两个操作都是整数,则运算之后的结果也是整数。
●做算数运算的时候,如果两个被操作的数不是同一类型,则会在运算的时候会自动进行类型转换。
备注:% 模 取余的用途
●判断a是不是b的倍数(是否能够整除)====>a%b是否==0
●判断a的个位是不是b====>a%10是否==b
●把数变成某个范围之内的数(利用余数一定比除数小的定理,比如十六进制里面最大的单个数是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++是不对的!!常量也是不可以使用的!!)
●前++和后++的区别:加加在前,先运算再赋值;加加在后,先赋值再运算。
int a = 5;
int b = a++;//int b=a;a=a+1;
int c = ++a;//a=a+1;int c=a;
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
Console.ReadLine();
2、关系运算符:
== != > < >= <=
关系运算符运算结果统统是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
注意:== 不能写成 =(一个=是赋值的意思)
3、逻辑运算符:
⑴、&&====>两个条件都成立,结果为True,否则False
bool a = 3 > 2 && 3 < 7;//true
⑵、||====>两个条件只要有一个成立,结果为True,两个都不成立为False
bool b = 5 > 3 || 5 > 7;//true
⑶、!====>将原来的结果取相反的(若本来为True,取反就是False)
bool c = !(5 > 3) || 5 > 7;//false
Console.WriteLine(c);
Console.ReadLine();
4、其他运算
= ====>赋值运算,将后面的值赋给左侧的变量。(注意:只能是变量)
+= -= *= /= %= ====>复合运算符(例:a += b;(意思是a = a +b;))
int a = 6;
a += 7;//a=a+7;
a *= 2;//a=a*2;
a %= 4;//a=a%4;
Console.WriteLine(a);
Console.ReadLine();
5、条件运算符:?
例题1:老狼老狼几点了? 若是上午出现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();
例题2:键盘键入三个数,找出来最大的数。
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();
C#语言基础的更多相关文章
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库 ...
- C语言基础回顾
第一章 C语言基础 1. C语言编译过程 预处理:宏替换.条件编译.头文件包含.特殊符号 编译.优化:翻译并优化成等价的中间代码表示或汇编代码 汇编:生成目标文件,及与源程序等效的目标的机器语言代码 ...
- 黑马程序员_ C语言基础(二)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 概览 今天基础知识分为以下几点内容(注意:循环.条件语句在此不再赘述): 1.Hello W ...
- C#语言基础— 输入与输出
C#语言基础— 输入与输出 1.1函数的四要素:名称.输入.输出.加工 1.2主函数:输出语句.输入语句: Static viod Main(string[] stgs)//下划线部分可以自己指定 { ...
- 【GoLang】GO语言系列--002.GO语言基础
002.GO语言基础 1 参考资料 1.1 http://www.cnblogs.com/vimsk/archive/2012/11/03/2736179.html 1.2 https://githu ...
- R语言基础:数组&列表&向量&矩阵&因子&数据框
R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...
- OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
- Java学习总结(二)----Java语言基础
1. Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...
随机推荐
- 如何在高并发分布式系统中生成全局唯一Id
月整理出来,有兴趣的园友可以关注下我的博客. 分享原由,最近公司用到,并且在找最合适的方案,希望大家多参与讨论和提出新方案.我和我的小伙伴们也讨论了这个主题,我受益匪浅啊…… 博文示例: 1. ...
- xamarin优化listView.ScrollTo
在xamarinz中关于listview的滚动,我这里有点小优化,我做了一个类似QQ的聊天页面,上面是一个listview,下面时一个editText,当在手机上使用时,发现在android平台下,如 ...
- CSS实现水平|垂直居中漫谈
利用CSS进行元素的水平居中,比较简单,手到擒来:行级元素设置其父元素的text-align center,块级元素设置其本身的left 和 right margins为auto即可.而撸起垂直居中, ...
- DDD实践切入点(二)
最近发现下面关于上下文的理解有些问题,不太好改,暂时先不改了 承前:大型系统的支撑,应用系统开发思想的变迁,DDD实践切入点(一) 从大比例结构入手已经开始了系统的建设,大家都知道需求是会不断变化不断 ...
- javascript的垃圾收集机制
× 目录 [1]原理 [2]标记清除 [3]引用计数[4]性能问题[5]内存管理 前面的话 javascript具有自动垃圾收集机制,执行环境会负责管理代码执行过程中使用的内存.在编写javascri ...
- AngularJS开发指南11:AngularJS的model,controller,view详解
model model这个词在AngularJS中,既可以表示一个(比如,一个叫做phones的model,它的值是一个包含多个phone的数组)对象,也可以表示应用中的整个数据模型,这取决于我们所讨 ...
- Log4net入门(WCF篇)
在上一篇Log4net入门(ASP.NET MVC 5篇)中,我们讲述了如何在ASP.NET MVC 5项目中使用log4net.在这一篇中,我们将讲述如何在WCF应用中使用log4net,为了讲述这 ...
- geotrellis使用(二十五)将Geotrellis移植到spark2.0
目录 前言 升级spark到2.0 将geotrellis最新版部署到spark2.0(CDH) 总结 一.前言 事情总是变化这么快,前面刚写了一篇博客介绍如何将geotrellis移植 ...
- YYModel 源码解读(二)之NSObject+YYModel.h (2)
_YYModelMeta 这个内部的类主要是对这个类的描述.包含了和此类转换相关的数据. /// A class info in object model. @interface _YYModel ...
- Android 开发环境搭建以及工具(不断更新)
学习android需要学习的编程知识 https://wiki.cyanogenmod.org/w/Doc:_Development_Resources 从http://source.android. ...