解决方案的组成部分
文件后缀名|含义
-|
.Sln:解决方案|
.csproj:项目文件|项目
.cs:类文件|类文件中的C#代码
解决方案包含项目文件,项目文件包含cs文件。
C#程序结构
代码|含义
-|
using System; |引用命名空间
namespace DemoOne;|项目名或者命名空间
Class name{}|类
static void Main(String[] args){}|程序主入口或是Main函数
空间命名的别名+输出语句
using mmkj = System.Console;
namespace nn{
class c{
static void Main(String[] args){
Console.WriteLine("正常输出");
mmkj.WriteLine("使用别名输出");
}
}
}
标识符
例如 String username;
区分大小写。
大小字母,数字,下划线组成,不能以数字开头。
想使用关键字作为标识符,需要在前面加"@"。
winForm程序
文件目录分析
文件|存放
-|
bin|exe程序和pdb调试程序
obj|debug子目录,含有编译过程中产生的中间代码
properties|包含AssemblyInfo.cs文件,此文件包含程序集属性的设置,创建项目时自动添加的。
App.config|资源文件,存放字符串、图标等
Form1.cs|窗体代码
Form.Designer.cs|面板控件的生成和显示
Program.cs|应用程序代码
WinForm1.csproj|项目文件
窗体显示窗口和窗体控件代码快速切换
- 在窗体显示窗口,按F7查看
- 在窗体控件代码,按shift+F7切换
Winform界面分析
//partial 分布类
//当前类继承 System.Windows.Forms.Form类
public partial class Form1 : Form{}
查看源代码
选中代码,按F12进行查看
操作窗体
点击项目名,右键->添加->新建项->窗体。
点击Form.cs文件,删除即可。
窗体属性
属性名|含义
-|
BackColor|背景色
BackgroundImage|背景图片
Cursor|鼠标形状
HelpButton|帮助按钮,不能与最大化、最小化同时存在
Icon|图标
MainMenuStrip|主菜单
MaximumBox|最大化
MaximumSize|最大化时窗体大小(0,0)x,y像素
MinimumBox|最小化
MinimumSize|最小化时窗体大小(0,0)x,y像素
Name|唯一标示名
ShowIcon|是否显示图标
ShowInTaskbar|是否在任务栏显示
Size|窗体大小
Text|标题
StartPosition|启动时,窗体显示的位置
TopMost|是否居顶显示,不被别的窗体挡住
如果不希望用户更改窗体大小,就将最大化与最小化的值设置为相同。
常量
//常量必须在声明的同时赋值
const int a = 1;
*转义字符 反斜杠:*
Console.WriteLine("我\n好");
使转义字符失效
Console.log(@"我\n是");
字符串换行
String str = @"select * from user
where name = 'zichen' ";
Console.WriteLine();
数据类型
值类型:int a = 1; 存储在栈中
引用类型:String s = “你”; 存储在堆中
整数类型
数据类型|说明|值范围|对应System程序集中的结构
-|
sbyte|有符号8位整数|-128~127|SByte
byte|无符号8位整数|0~255|Byte
short|有符号16位整数|-32768~32767|Int16
ushort|无符号16位整数|0~65535|UInt16
Int|有符号32位整数|-2147489648~2147483647|Int32
UInt|无符号32位整数|0~42994967295|UInt32
long|有符号64位整数|-2的63次方~2的63次方|Int64
ulong|无符号64位整数|0~2的64次方|UInt64
浮点类型
数据类型|说明|取值范围|适用范围
-|
float|32位单精度实数|1.510的-45次方~3.410的38次方|不常用
double|64位双精度实数|5.010的-324次方~1.710的308次方|常用
demcimal|128位十进制实数|1.010的-28次方~7.910的28次方|适用于财务
布尔类型
占用4个字节,32位在存储空间,不能用0和1代替。
字符类型
char类型
每个字符对象与Unicode字符集的字符相对应。
引用类型
字符串
- 字符串的不可变性,当一个变量被重新赋值时,原来的值并没有被销毁,而是重新开辟一块新的存储空间。当程序结束后,GC扫描整个内存,如果发现有的空间没有被指向,则立即被销毁。
- 字符串可以看做时char类型的一个只读数组。
读取控制台输入数据以及在控制台输出数据
Console.WriteLine("你喜欢什么水果啊?");
String fruit = Console.ReadLine();
if ("香蕉".Equals(fruit)) {
Console.WriteLine("这么巧,我也喜欢"+fruit);
}else{
Console.WriteLine("我不喜欢。");
}
使用数组下标的方式将值传输到输出语句中,将多个变量按顺序在输出语句后面排序
String name = "紫宸";
int age = 21;
String sex = "先生";
Console.WriteLine("尊敬的{0}{1},您好,您今年{2}岁了?这么年轻就做董事长了啊?鄙人佩服佩服!",name,sex,age);
Console.ReadKey();
运算符
运算符|描述|实例
-|
±*/|二元|普通运算
+|一元|var1= +var2;var2乘以1
-|一元|var1= -var2;var2乘以-1
++|一元|++在前先加后用,++在后先用后加
–|一元|–在前先加后用,–在后先用后加
< <= > >=
|二元|关系运算符
= += -= *= /= %=>>= <<= &= ^= \|=
|二元|赋值运算
sizeof()|返回改数组类型占用的字节数|sizeof(int);返回4
typeof()|返回class的类型|typeof(StreamReader);
&|返回变量的地址|&a;获得变量的实际地址
*|变量的指针|*a将指向一个变量
?|条件表达式|var1?true:false;
is|判断对象是否是某一类型|if(Person is Car)//检查Person是否是Car类
as|强制类型转换,即使转换失败也不会抛出异常|Object obj = new StringReader(“hello”);StringReader sr = obj as StringReader;
顺序
类别|运算符|结合性
-|
后缀| () [] -> . ++ - -
| 从左到右
一元| + - ! ~ ++ - - (type)* & sizeof
|从右到左
乘除| * / %
|从左到右
加减| + -
|从左到右
移位| << >>
|从左到右
关系| < <= > >=
|从左到右
相等| == !=
|从左到右
位与| AND &
|从左到右
位异或|XOR ^
|从左到右
位或| OR \|
|从左到右
逻辑与|AND &&
|从左到右
逻辑或|OR \|\|
|从左到右
条件 | ?:
|从右到左
赋值 |= += -= *= /= %=>>= <<= &= ^= \|=
|从右到左
逗号 |,
|从左到右