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. FULL JOIN 与 CROSS JOIN

    FULL JOIN 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行.(返回JOIN 两端表的所有数据,无论其与另一张表有没有匹配.显示左连接.右连接和内连接的并集) FULL JOIN ...

  2. Spark IDEA开发环境构建

    本文档基于IEDA构建spark maven应用. date: 2016/8/1 author: wangxl 1.下载IDEA https://www.jetbrains.com/idea/ 2.安 ...

  3. 9、Khala实现0.01版QQ

    这次来个有界面的. 登录界面: 主界面: 1.服务端开发: 只需创建一个类ChatType(./examples/HelloKhala/src/ChatType.cpp),在该类型中,核心为创建的两个 ...

  4. PHP判断访客是否移动端浏览器访问

    今天要给大家分享一段PHP代码,该代码的功能是用来判断访客是否移动端浏览器访问,该功能的实现思路是通过HTTP_X_WAP_PROFILE. HTTP_VIA.HTTP_USER_AGENT等信息来判 ...

  5. python 连接操作数据库(二)

    一.我们接着上期的博客继续对ORM框架进行补充,顺便把paramiko模块也给大家讲解一下: 1.ORM框架: 在连接操作数据库的第一个博客中也已经说了,sqlalchemy是一个ORM框架,总结就是 ...

  6. wordpress教程之在非single.php页面调用文章的信息

    使用Wordpress的朋友可能遇到这样的问题,在非single.php页面中我们有时候想要调用当前文章的标题.内容等信息,而Wordpress在生成文章页的时候在各个页面中唯一不变的只有当前的文章I ...

  7. UESTC_神秘绑架案 CDOJ 881

    神秘绑架案 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Sta ...

  8. 类linux系统/proc/sysrq-trigger文件功能作用

    立即重启计算机      echo "b" > /proc/sysrq-trigger 立即关闭计算机      echo "o" > /proc/ ...

  9. Code Generation and T4 Text Templates

    Code Generation and T4 Text Templates Code Generation and T4 Text Templates

  10. 阿里云主机和RDS使用心得

    本文上非广告,只是将这近1年的使用过程给大家分享一下. 去年下半年,服务器托管到期,加上服务器也使用了5.6年,严重老化,当时正好看到阿里云的宣传广告,就开始了阿里云使用历程.陆续购买了4台云主机,I ...