C#中数据类型的继承关系如下

System.Object

  |-------------System.ValueType

  |      |-------System.Boolean

  |      |-------System.Byte

  |      |-------System.SByte

  |      |-------System.Char

  |      |-------System.Int16

  |      |-------System.UInt16

  |      |-------System.Int32

  |      |-------System.UInt32

  |      |-------System.Int64

  |      |-------System.UInt64

  |      |-------System.Single

  |      |-------System.Double

  |      |-------System.Decimal

  |      |-------System.DateTime

  |      |-------System.Enum----------枚举类型

  |      |----------------------------------结构体类型

  |----------------------System.String

  |----------------------System.Delegate---------委托类型

  |----------------------System.Array-------------数组

  |---------------------------------------------------类类型

以"System"开头的都属于基础数据类型,其他的是自定义类型。

1、System.Object类型是C#数据类型中最为基础类型,用关键字“Object”表示。

Object类型提供的成员方法

成员方法 说                   明
Equals 带一个参数,用于对两个对象数据进行比较,若相等则返回True,否则返回False
Finalize 在自动回收对象之前执行清理操作,该方法一般由.NET框架自动调用
GetHashCode 生成一个与对象的值相对应的数字以支持哈希表的使用
ToString 生成描述对象数据的字符串

2、基础数据类型

类型

对应的

C#关键字

说明
System.Boolean bool  布尔类型,值只能为true或false,占用1字节
System.Byte byte 无符号整数,占用1字节 
System.SByte sbyte 有符号整数,占用1字节 
System.Char char 字符数据,占用2字节。可以强制转换为整数。采用Unicode编码格式 
System.Int16 short 有符号整数,占用2字节 
System.UInt16 ushort 无符号整数,占用2字节 
System.Int32 int 有符号整数,占用4字节 
System.UInt32 uint 无符号整数,占用4字节 
System.Int64 long 有符号整数,占用8字节 
System.UInt64 ulong 无符号整数,占用8字节 
System.Single float 7位有效数字,占用4字节 
System.Double double 15位有效数字 ,占用8字节
System.Decimal decimal 为了维护运算精度,计算时不进行舍入操作 ,适用于财务运算。
System.DateTime 表示一个从公元0001年1月1日午夜12:00:00到公元9999年12月31日晚上11:59:59的时间数据,精确到10纳秒。 
System.String string 表示一段文本,采用UTF-16编码,可以包含字符"\0"
System.Enum enum 所有枚举类型的基础类型
System.Delegate delegate 多有委托类型的基础类型
System.Array 所有数组类型的基础类型

例如

public enum Colors
{
Red,Blue,White,Yelow,Pink,Green
}
枚举类型 说 明
GetName

获取指定数据的枚举项目的名称。为静态方法。

例如:"Enum.GetName(typeof(Colors),0)"返回Red

GetNames

获得由枚举类型的所有枚举项目名称组成的字符串数组。为静态方法。

例如:“Enum.GetNames(typeof(Color))”返回一个字符串数组,数组元素为

“Red”、“Blue”、“White”

“Yelow”、“Pink”、“Green”。

GetValues

获得有枚举类型的所有枚举项目组成的数组。为静态方法。

例如:"Enum.GetValues(typeof(Colors))"返回一个数组,数组元素是

“Colors.Red”、“Colors.Blue”、“Colors.White”

“Colors.Yelow”、“Colors.Pink”、“Colors.Green”。

Parse  解析字符串,并转换成枚举类型。失败抛出异常
TryParse 解析字符串,并转换成枚举类型,返回是否成功标志 
ToString  返回表示枚举值的字符串。

委托就是一个指向成员方法的对象,可以看作面向对象的指针。

例如:

public delegate int add12(int op1,int op2);

int add(int a,int b);

add12 a=null;

a=new add12(add);

int b=a(,);

匿名委托

add12 aaa=delegate(int a,int b)
{
return a+b;
};
int result=aaa(,);
aaa=delegate(int a,int b)
{
return a*b;
};
result=aaa(,);

泛型

开发中常用的泛型类型为System.Collections.Generic.List<>与System.Collections.Generic.Dictionary<>。

System.Collections.Genric.ArrayList可以放置任意类型数据,但是使用时必须进行强制类型转换。

as类型转换不会报错,,若转换失败则设置变量值为空类型。

is判断对象是否是指定的类型或派生类型,也可以判断是否实现了指定的接口。

internal定义类型或类型成员只能在程序集内部可见。

sealed class 密封类不能被继承。

参数传递:out:输出参数,ref:引用传递。

事件

public event EventHandler NameChanged=null;

event:事件关键字

EventHandler:事件采用的委托类型

NameChanged:事件的名称

例如:触发事件的函数

private void RaiseNamechangedEvent()

{

  if(NameChanged != null)

  {

    NameChanged(this,null);

  }

}

索引器

 public class PeopleClass
{
public string Name;
public string Id;
public PeopleClass(string id,string name)
{
Id = id;
Name = name;
}
}
/// <summary>
/// 索引器范例
/// </summary>
public class PeopleList
{
public PeopleList()
{ }
private ArrayList _Values = new ArrayList();
/// <summary>
/// 添加对象
/// </summary>
/// <param name="people"></param>
public void AddPeople(PeopleClass people)
{
_Values.Add(people);
}
/// <summary>
/// 参数为序号的索引器
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
public PeopleClass this[int index]
{
get
{
return (PeopleClass)_Values[index];
}
set
{
_Values[index] = value;
}
}
/// <summary>
/// 参数为人员姓名的索引器
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public PeopleClass this[string name]
{
get
{
foreach(PeopleClass people in _Values)
{
if(people.Name==name)
{
return people;
}
}
return null;
}
}
}
public class test
{
void testt()
{
PeopleList list = new PeopleList();
list.AddPeople(new PeopleClass("", "大浦安娜"));
list.AddPeople(new PeopleClass("", "泽井芽衣"));
list.AddPeople(new PeopleClass("", "卯月麻衣"));
list.AddPeople(new PeopleClass("", "樱井莉亚"));
list.AddPeople(new PeopleClass("", "雾岛奈津美")); PeopleClass people = list[];
people = list["泽井芽衣"];
}
}

unsafe:(编译选项需要允许不安全的代码)

不安全代码只会在使用 /unsafe 编译的情况下出现 D:\项目\程序\01 无纸记录仪\程序\上位机\ADDriverControl\Data\Para.cs 208 13 ADDriverControl

 /// <summary>
/// 转换Int数据到数组
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static byte[] ToByte(int data)
{
unsafe
{
byte* pdata = (byte*)&data;
byte[] byteArray = new byte[sizeof(int)];
for (int i = ; i < sizeof(int); ++i)
{
byteArray[i] = *pdata++;
}
return byteArray;
}
}

常用控件类型和前缀的对应关系

控件类型 中文名 前缀
Button 按钮 btn
CheckBox 复选框 chk
ColumnHeader 视图列表头  col
ComboBox 组合框  cbo 
ContextMenu 快捷菜单  ctm 
DataGrid 数据网格控件  dg 
DataGridView 数据网格视图控件  dgv 
DateTimePicker 时间输入框  dtp 
DomainUpDown 数值框  dud 
Form 窗体  frm 
GroupBox 组合框  grp 
HscrollBar 水平滚动条  hsb 
ImageList 图标列表  img 
Label 文本标签  lbl 
LinkLabel 带链接的文本标签  lbl 
ListBox 列表框  lst 
ListView 视图列表  lvw 
Menu 菜单  menu 
MenuItem 菜单项  menu 
NumericUpDown 数值框  nud 
Panel 面板  pnl 
PictureBox 图片框  pic 
ProgressBar 进度条  prg 
RadioButton 单选框按钮  rdo 
Spliter 拆分条  spl
StatusBar 状态栏  stu 
StatusBarPanel 状态栏区域  pnl 
StatusStrip 状态栏  stu 
TabControl 分页控件  tab 
TabPage 选择卡  page 
TextBox 文本框  txt 
Timer 定时器  tmr 
ToolBar 工具条  tbr 
ToolStrip 工具栏  tsp 
ToolStripButton 工具栏按钮  btn 
ToolStripComboBox 工具栏下拉组合框  cbo 
ToolStripDropDownButton 工具栏下拉按钮  btn 
ToolStripDropDownMenu 工具栏菜单项目  menu 
ToolStripLabel 工具栏静态文本  lbl 
ToolStripProgressBar 工具栏进度条  prg 
ToolStripTextBox  工具栏文本框 txt 
TreeView 树状视图列表 tvw
VScrollBar 垂直滚动条  vsb
WebBrowser 浏览器控件 wb

读写系统配置

属性-设置

用户:应用程序自身能修改设置信息

应用程序:设置信息对程序是只读的,只能用另外的文本编辑器来修改配置文件。

000-C#基础的更多相关文章

  1. 斯坦福数据挖掘Introduction

    感谢敖山.薛霄老师把我引进了统计学和现代服务业的大门.......至少是长见识了. 查相似项检索时发现的. 中间一部分资料来自厦门大学数据库实验室,感谢大牛们的传道授业,爱你们. 查资料时发现很多计算 ...

  2. Python 学习笔记 编程基础汇总000

    编程基础知识汇总000 1.计算机结构 2.编程语言分类 3.字符编码由来 计算机结构 计算机组成五大部件: 控制器.运算器.存储器.输入.输出 控制器(Controler):对程序规定的控制信息进行 ...

  3. 【已解决】Https请求——基础连接已经关闭 发送时发生错误

    本人在做商用项目的推送消息功能时,借助第三方推送服务.这里避免有打广告的嫌疑,就不报名字了.由于是通过调用API接口,所以Post方法是自己写的,但是在开发环境是可以正常推送的,但是一上线就出各种问题 ...

  4. Web前端温故知新-CSS基础

    一.CSS定义与编写CSS 1.1 CSS的定义 全名:Cascading Style Sheets -> 层叠样式表 定义:CSS成为层叠样式表,它主要用于设置HTML页面中的文本内容(字体. ...

  5. 2000条你应知的WPF小姿势 基础篇<69-73 WPF Freeze机制和Template>

    在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师.最为出色的是他维护了两个博客:2,000ThingsYou Should Know About C# 和 2,00 ...

  6. 2000条你应知的WPF小姿势 基础篇<22-27 WPF生命周期, 基础类等>

    端午长假在家陪着女朋友, 幸福感满满,生活对于一只饱经忧患的程序猿来说也是非常重要的,也就暂时没有更新博客.休假结束,回归奋斗的日子了,开始继续更新WPF系列. 在正文开始之前需要介绍一个人:Sean ...

  7. 2000条你应知的WPF小姿势 基础篇<15-21>

    在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师,对C#和WPF有着极深的热情.最为出色的是他维护了两个博客:2,000Things You Should Know ...

  8. 2000条你应知的WPF小姿势 基础篇<1-7>

    在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师,对C#和WPF有着极深的热情.最为出色的是他维护了两个博客:2,000Things You Should Know ...

  9. Oracle数据库基础知识

    oracle数据库plsql developer   目录(?)[-] 一     SQL基础知识 创建删除数据库 创建删除修改表 添加修改删除列 oracle cascade用法 添加删除约束主键外 ...

  10. CSS基础篇之了解CSS和它的基本属性

    CSS是什么? CSS英文全名是Cascading Style Sheets翻译过来就是层叠样式表,它主是把网页表现与内容分离的一种样式设计语言.这种语言能优化我们编程,把东西简化和优化写法,而且不同 ...

随机推荐

  1. (转)javascript中 window.location= window.location;是什么意思

    重载当前页面.但是,重载后,一些$_GET或者$_POST $_REQUEST 表单提交的数据会清空.   重新加载当前页面的资源,就是刷新本页面

  2. Volley报错!!!No address associated with hostname

    年轻人检查你的网络去吧,这是没有网络导致的原因

  3. VS2015预览版中的C#6.0 新功能(三)

    VS2015预览版中的C#6.0 新功能(一) VS2015预览版中的C#6.0 新功能(二) Using static 使用using StaticClass,你可以访问StaticClass类里的 ...

  4. (原)Eclipse中将JNI生成的so打包成jar的步骤

    说明:新人,对java不熟,见谅. 1. 新建工程,添加好native support,写好对应的文件(包括cpp文件,so文件和对应的java文件,此处称对应的java文件为SoJAR.java,) ...

  5. Asp.Net通过SignalR实现IM即时通讯

    前言:SignalR是一种针对H5中WebSocket的解决方案,可以实现在不支持H5的浏览器中实现IM 后端: step 1:通过NuGet安装SignalR step 2:新建一个类继承于Hub, ...

  6. 异常处理与调试4 - 零基础入门学习Delphi53

    调试(Debug) 让编程改变世界 Change the world by program 调试(Debug) 在应用程序开发中检测.处理程序中的错误是一个非常重要的环节.在Delphi的集成开发环境 ...

  7. 视听说加速器--AHK辅助工具

    大学有视听说这门课,看起来这门课设计得非好,可是对大多数人来讲却不能按时完成.到了最后都要抓紧提速,上网找答案,辛苦的抄,有“聪明者”便找加速器来做. 我也是赶着做的人之一.抄答案太累,加速器太卡,还 ...

  8. 添加事件监听兼容IE6-8

    IE8一下浏览器不支持addEventListener,用attachEvent取而代之,但是在时间类型前面要加上’on‘,例如click时间在attachEvent中要写成onclick. var ...

  9. python分布式抓取网页

    呵呵,前两节好像和python没多大关系..这节完全是贴代码, 这是我第一次写python,很多地方比较乱,主要就看看逻辑流程吧. 对于编码格式确实搞得我头大..取下来页面不知道是什么编码,所以先找c ...

  10. java各公司笔试题集1

    IBM笔试题 注:IBM笔试题一小时之内完成,题目全部用英文描述,这里用中文表述 一.名词解释 1.Eclipse 2.J2EE 3.EJB 4.Ajax 5.Web service 二.找出以下代码 ...