c#
1、基本
-
快速对齐代码 :ctrl + k + d
-
注释所选的代码:ctrl + k + c 取消注释:ctrl + k + u
-
折叠冗余代码:#Region 和 #EndRegion
-
\转义字符@取消斜线的转移效果
-
开头必须有
using System;
- 接受来自用户的值
int num;
num = Convert.ToInt32(Console.ReadLine());
- 显示输出的值
Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c);
Console.ReadLine();
- 整数常量
212 /* 合法 */10进制
215u /* 合法 */无符号数
0xFeeL /* 合法 */16进制
078 /* 非法:8 不是一个八进制数字 */8进制0开头
032UU /* 非法:不能重复后缀 */
0213 /* 八进制 */
0x4b /* 十六进制 */
30 /* int */
30u /* 无符号 int */
30l /* long */
30ul /* 无符号 long */
3.14159 /* 合法 */
314159E-5L /* 合法 */
510E /* 非法:不完全指数 */
210f /* 非法:没有小数或指数 */
.e55 /* 非法:缺少整数或小数 */
- 转义字符
转义序列 | 含义 |
---|---|
\ | \ 字符 |
’ | ’ 字符 |
" | " 字符 |
? | ? 字符 |
\a | Alert 或 bell |
\b | 退格键(Backspace) |
\f | 换页符(Form feed) |
\n | 换行符(Newline) |
\r | 回车 |
\t | 水平制表符 tab |
\v | 垂直制表符 tab |
\ooo | 一到三位的八进制数 |
\xhh . . . | 一个或多个数字的十六进制数 |
- 异常处理
try{}//内写需要异常处理的代码
catch{}//异常后处理方式
2、产生随机数
Random r = new Random();//创建一个随机对象
int k = r.Next(1, 7);//设置随机范围产生随机数
3、常量,枚举
- 常量
const int i = 100;//常量不能被重新赋值
- 枚举作用:规范开发,将枚举声明在命名空间的下面类名的上面
enum colour
{
black,
red,
yellow,
green
}
Colour i = Colour.red;
3、转换类型
- convert转换
Convert.ToBoolean(var) var转换为bool
Convert.ToByte(var) var转换为byte
Convert.ToChar(var) var转换为char
Convert.ToDecimal(var) var转换为decimal
Convert.ToDouble(var) var转换为double
Convert.ToInt16(var) var转换为short
Convert.ToInt32(var) var转换为int
Convert.ToInt64(var) var转换为long
Convert.ToSByte(var) var转换为sbyte
Convert.ToSingle(var) var转换为float
Convert.ToString(var) var转换为string
Convert.ToUInt16(var) var转换为ushort
Convert.ToUInt32(var) var转换为uint
Convert.ToUInt64(var) var转换为ulong
- parse只能将字符串转换
Int.Parse():只支持将string类型转成int,Parse就是把String类型转换成int,char,double…等,也就是*.Parse(string) 括号中的一定要是string类型。
String st=“5.21”;
double n=5.21;
Int.Parse(st); //输出5
Int.Parse(n); //报错
用来转换String类型的数据
TryParse的效率比Parse的效率高,容错也好。
Int.TryParse(n);
- 将字符串转化成枚举类型
enum.Parse();
4. 两种返回方法
public static int sumi(int[] A)
{
int sum1 = 0;
for (int i = 0; i < 10; i++)
{
sum1 = A[i] + sum1;
}
return sum1;
}
public static void avg(int[] A,out float j)
{
j = sumi(A)/10;
}
static void Main(string[] args)
{
int[] A = new int[10]{ 1,2,3,4,5,6,7,8,9,10};
float r = 0;
int ss = sumi(A);
avg(A,out r);
Console.WriteLine(ss);
Console.WriteLine(r);
}
5. 调用形参时改变实参
- 使用 ref
public static int salary(ref int money)
{
money = money + 500;
}
static void Main(string[] args)
{
int money = 5000;
salary(ref money);
Console.WriteLine(money);
}
6.属性
- 属性的作用:保护字段对字段的赋值和取值进行限定
class user
{
private int id;
public int ID
{
get{return id;}
set{id = value}
}
public string Id { get => idname; set => idname = value; }//新版本的形式
}
7.面向对象和JAVA类似
1)继承父类,Java需要显式写上extends关键字指明某类需要继承那个父类(Java喜欢称呼为超类),而C#才是真正意义上继承了C++的传统,即C#是真正的C家族语言,所以直接":“冒号后面指明要继承那个父类。
2)实现接口,Java需要显式写上implements关键字指明要实现哪个接口,而C#不是,C#用”:"冒号后面指明要实现哪个接口。
3)重写父类同名方法,在C家族里(C\C++\C#)需要使用override关键字。而Java不需要。
4)访问类变量类方法机制,在C#里只可使用类名去调用,对象不允许调用。而Java不仅允许类名去调用,同时还允许对象去调用。
5)子类调用父类的构造函数,Java使用super关键字,而C++\C#是使用base关键字。
8. 析构函数
public class student
{
int id;
string name;
public void inc(int id , string name)
{
this.id = id;
this.name = name;
}
~student
{
Console.WriteLine("我是析构函数,我的作用是释放空间,我在程序结束的时候才会执行");
}
}
9. 命名空间
类属于命名空间,当缺失命名空间时可以采取以下操作:
- 用鼠标去点
- alt+shift+f10
10.不同项目之间引用
- 在当前项目的引用出点击需要引用的项目
11.面向对象的基本原则(SOLAD)
- (single responsibility principle)单一职责原则
- (Open close principle)开发关闭原则
- (Liskov Substitution Principle)里氏替换原则
- (interface segregation principle)接口隔离原则
- (dependence inversion principle) 依赖反转原则
12.抽象类
abstract class Abstract01
{
abstract public void Run();
}
class Abstract02:Abstract01
{
public override Run()
{
Console.WriteLine("aibds");
}
}
窗体
WinForm 窗体
Button 按钮
ComboBox select下拉列表框 选中它单机三角图标编辑页或者在属性面板的数据Items中添加option(DataSource是数据绑定项)
Checkbox 复选框
CheckedListBox 复选框列表(一个组垂直包含个checkbox多选框)
DateTimePicker 日期时间控件
GroupBox 分组控件
Label 标签
LinkLabel
ListBox 多选列表框
ListView 列表控件(多作为表格展示 先设置编辑列 行为的HeaderStyle:选择是否能点击 ; 外观的View:显示模式【一般选Details详细模式来显示表格】)
LinkLabel 超链接标签
MaskedTextBox
MonthCalendar
NotifyIcon 托盘控件
NumericUpDown 数字输入框
PictureBox 图片框
ProgressBar 进度条
RadioButton 单选框
RichTextBox
TreeView 树控件
Textbox 文本框
ToolTip 气泡提示
webBrowser
容器:
Panel 面板
SplitContainer 分隔容器
TabControl 选项卡控件(tab页)FlowLayoutPanel GroupBoxtableLayoutPanel
菜单和工具栏:
ContextMenuStrip 右键菜单
MenuStrip 菜单控件(类似导航)
StatusStrip 状态栏控件
ToolStrip 工具栏控件
ImageList 图片集合 ????(4.7版本未找到)
Timer 时间控件
对话框:
FolderBrowserDialog 文件夹选择
OpenFileDialog 打开文件
SaveFileDialog 保存文件
数据
Chart
BindingNavigator
BindingSource
DataGridView
DataSet
组件
BackgroundWorker
DirectoryEntry
DirectorySearcher
ErrorProvider
Eventlog
FilesystemWatcher
CHelpProvider
ImageList
MessageQueue
PerformanceCounter
Process
SerialPort
ServiceController
Timer
窗体属性面板:
布局
--AuteScaleMode 自动缩放模式
--Autoscroll 自动滚动
--AltoScrollMargin 自动滚动边距
--AutoScrollMinsize 自动滚动最小尺寸
--AutoSize 自动大小
--AutoSizeMode 拖动窗口改变大小开关
--Location 位置
--MaximumSize 最大尺寸
--MinimumSize 最小尺寸
--Padding 是布局还是内边距?
--Size 字体大小?
--StartPosition 启动窗体出现的位置
--Windowstate 窗口状态
窗口样式(WindowStyle)
--ControlBox 控制按钮组
--HelpButton 帮助按钮
--lcon 图标
-size
--IsMdiContainer 是不是MDI容器
--MainMenuStrip 主菜单条
--MaximizeBox 窗口最大化
--MinimizeBox 窗口最小化
--Opacity 不透明度
--Showlcon 显示图标
--ShowlnTaskbar 在任务栏中显示
--SizeGripStyle 大小手柄样式
--TopMost 是否为最顶层元素
--TransparencyKey 透明色
行为
--AllowDrop 允许拖放
--AutoValidate 自动验证
--ContextMennuStrip 上下文菜单条
--DoubleBuffered 双缓冲
--enabled 可用
--ImeMode 输入法模式
焦点(Focus)
--CausesValidation 是否触发验证
可访问性(Accessibility)
--AccessibleDescription 可访问描述
--AccessibleName 可访问名称
--AccessibleRole 可访问角色
设计
(Name) 默认Form1 对应 this.Name = "帝国标签窗口"; (这个自动生成窗口事件函数名时会取它的值;值_事件名)
language 语言
Localizable 本地化
locked 锁定
数据
--(ApplicationSettings)
--(PropertyBinding)
--Location
--Text
--(DataBindings) 数据绑定
--(Advanced)
--Tag
--Text
--Tag
外观(Appearance)
--BackColor 背景颜色
--Backgroundlmage 背景图片
--BackgroundImageLayout 背景图片布局
--Cursor 光标选择--Font --Name:宋体 --Size --Unit --Bold --GdiChartSet --GdVerticalFont --GdiVerticalFont --Italic --Strikeout --Underline
--ForeColor
--FormBorderStyle 字体边框样式
--RightToLeft 从右到左
--RightToLeftLayout 从右到左布局
--Text 窗口标题 对应 this.Text = "帝国cms标签";
--UseWaitCursor 用户等待光标
杂项
--AcceptButton 接受按钮
--CancelButton 取消按钮
--KeyPreview 键预览
--tooltip1上的ToolTip
窗体组件属性面板:
TabIndex 设置按下tab键时跳转的顺序 对表单组件特别有用
窗体事件:
布局:
DpiChanged
DpiChangedAfterParent
DpiChangedBeforeParent
Layout 布局
MdichidActivate MDI 子窗口行为
Move 移动 在移动控件时发生。(从 Control 继承。)
PaddingChanged 边框更改 在控件空白区更改时发生。(从 Control 继承。)
Resize 重置大小 在调整控件大小时发生。(从 Control 继承。)
操作
Click 单击 在单击控件时发生。(从 Control 继承。)
Doubleclick 双击
MouseCaptureChanged 鼠标捕获更改 当控件失去鼠标捕获时发生。(从 Control 继承。)
MouseClick 鼠标单击 在鼠标单击该控件时发生。(从 Control 继承。)
MouseDoubleClick 鼠标双击 当用户使用鼠标双击 RadioButton 控件时发生。
ResizeBegin 重置尺寸开始
ResizeEnd 重置尺寸结束
Scroll 滚动
行为
ChangeUICues 更改界面提示 在焦点或键盘用户界面 (UI) 提示更改时发生。(从 Control 继承。)
ControlAdded 控制已加入 在将新控件添加到 Control.ControlCollection 时发生。(从 Control 继承。)
ControlRemoved 控制已移除 在从 Control.ControlCollection 移除控件时发生。(从 Control 继承。)
FormClosed (点击X,直接结束进程不会触发)关闭窗体事件发生在FormClosing之后
FormClosing (点击x,直接结束进程不会触发)关闭窗体
HelpButtonClicked 帮助按钮已点击
HelpRequested 帮助已请求
ImeModeChanged 输入法模式已更改 当 ImeMode 属性更改时发生。此事件与此类无关。(从 ButtonBase 继承。)
InputLanguageChanged 输入语言已更改
InputLanguageChanging 输入语言准备更改
Load 窗体初始化: 执行步骤program.cs的Main方法执行Application.Run(new Form1());然后调用Form1.cs中的Form1->Form1()析构函数中的InitializeComponent(){ this.Load += new System.EventHandler(this.Form1_Load);}最后调用Form1_Load()
QueryAccessibilityHelp 查询访问帮助 在 AccessibleObject 为辅助功能应用程序提供帮助时发生。(从 Control 继承。)
Shown 展示 在控件样式更改时发生。(从 Control 继承。)
StyleChanged 样式已更改 系统颜色更改时发生。(从 Control 继承。)
SystemColorsChanged 系统颜色更改
按键KeyDown 按键按下瞬间
KeyPress 按键按住
KeyUp 按键抬起瞬间
PreviewKeyDown 预览键按下 在焦点位于此控件上的情况下,当有按键动作时发生(在 KeyDown 事件之前发生)。(从 Control 继承。)
焦点
Activated 活动
Deactivate 非活动
Enter 进入
Leave 离开
Validated 已验证 在控件完成验证时发生。(从 Control 继承。)
Validating 验证中
属性已更改
AutoSizeChanged 当 AutoSize 属性的值更改时发生。(从 ButtonBase 继承。)
AutoValidateChanged
BackColorChanged 当 BackColor 属性的值更改时发生。(从 Control 继承。)
BackgroundlmageChanged 当 BackgroundImage 属性的值更改时发生。(从 Control 继承。)
BackgroundlmageLayoutChanged 当 BackgroundImageLayout 属性更改时发生。(从 Control 继承。)
BindingContextChanged 当 BindingContext 属性的值更改时发生。(从 Control 继承。)
CausesValidationChanged 当 CausesValidation 属性的值更改时发生。(从 Control 继承。)
ClientSizeChanged 当 ClientSize 属性的值更改时发生。 (从 Control 继承。)
ContextMenuStripChanged 当 ContextMenuStrip 属性的值更改时发生。 (从 Control 继承。)
CursorChanged 当 Cursor 属性的值更改时发生。(从 Control 继承。)
DockChanged 当 Dock 属性的值更改时发生。(从 Control 继承。)
EnabledChanged 在 Enabled 属性值更改后发生。(从 Control 继承。)
FontChanged 在 Font 属性值更改时发生。(从 Control 继承。)
ForeColorChanged 在 ForeColor 属性值更改时发生。(从 Control 继承。)
LocationChanged 在 Location 属性值更改后发生。(从 Control 继承。)
MaximizedBoundsChanged
MaximumSizeChanged
ParentChanged 在 Parent 属性值更改时发生。(从 Control 继承。)
RegionChanged 当 Region 属性的值更改时发生。(从 Control 继承。)
RightToLeftChanged 在 RightToLeft 属性值更改时发生。(从 Control 继承。)
RightToLeftLayoutChanged
SizeChanged 在 Size 属性值更改时发生。(从 Control 继承。)
TextChanged 在 Text 属性值更改时发生。(从 Control 继承。)
VisibleChanged 在 Visible 属性值更改时发生。(从 Control 继承。)
鼠标
MouseDown 鼠标按下 当鼠标指针位于控件上并按下鼠标键时发生。(从 Control 继承。)
MouseEnter 鼠标进入 在鼠标指针进入控件时发生。(从 Control 继承。)
MouseHover 鼠标移入 在鼠标指针停放在控件上时发生。(从 Control 继承。)
MouseLeave 鼠标离开 在鼠标指针离开控件时发生。(从 Control 继承。)
MouseMove 鼠标移动 在鼠标指针移到控件上时发生。(从 Control 继承。)
MouseUp 鼠标抬起 在鼠标指针在控件上并释放鼠标键时发生。(从 Control 继承。) MouseWheel????? 在移动鼠标轮并且控件有焦点时发生。(从 Control 继承。) 数据
(DataBindings) 数据绑定
--CollectionChanged
--CollectionChanging
拖放
OragDrop 拖放
OragEnter 拖放进入
OragLeave 拖放离开
DragOver 拖放经过
GiveFeedback 给予反馈
QueryContinueDrag 查询继续拖动 在拖放操作期间发生,并且允许拖动源确定是否应取消拖放操作。(从 Control 继承。)
外观
Paint 在重绘控件时发生。(从 Control 继承。) TabIndexChanged 在 TabIndex 属性值更改时发生。(从 Control 继承。) ????????TextChanged 在 Text 属性值更改时发生。(从 Control 继承。)