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. 提示框的优化之自定义Toast组件之(三)Toast组件优化

    开发步骤: 在toast_customer.xml文件中添加一个图片组件对象显示提示图片 <?xml version="1.0" encoding="utf-8&q ...

  2. React-Native做一个文本输入框组件

    我又回来啦! 由于最近一直在做公司的项目,而且比较急.如今项目已经迭代到第三期,可以缓一缓了... 说实话,最近一直再用android做开发,而且时间也不宽裕,react-native有点生疏了. 好 ...

  3. No1_4.数组的基本操作_Java学习笔记

    import java.util.Arrays; public class HelloArrayOp { public static void main(String[] args) { // TOD ...

  4. Scrapinghub执行spider抓取并显示图片

    序 最近在学习Scrapy的时候发现一个很有意思的网站,可以托管Spider,也可以设置定时抓取的任务,相当方便.于是研究了一下,把其中比较有意思的功能分享一下: 抓取图片并显示在item里: 下面来 ...

  5. 看看国外的javascript题目,你能全部做对吗?(分享)

    本文转自@Aaron的博客,拿过来分享一下.原文:看看国外的javascript题目,你能全部做对吗? 题目一: (function(){ return typeof arguments; })(); ...

  6. ZendFramework 两种安装方式

    1. 在线安装(基于composer) Zend 应用程序骨架 GitHub 地址: https://github.com/zendframework/ZendSkeletonApplication ...

  7. scheme代码高亮

    (defun iedit-symbol-in-defun () "Enter `iedit-mode' to rename the symbol in current function, o ...

  8. C# is 与 as 运算符

    as运算符有一定的适用范围,它只适用于引用类型或可以为null的类型,而无法执行其他的转换,如值类型的转换以及用户自定义的类型转换,这类转换应该适用强制转换表达式来执行.as当转换不了的时候返回nul ...

  9. 什么是Elasticsearch

    一个采用Restfull API 标准的高扩展性和高可用性的实时数据分析的全文搜索工具 Elasticsearch 涉及到的一些概念: 1.Node(节点): 单个的装有Elasticsearch服务 ...

  10. VS Visual Studio connection(); Microsoft Visulal Studio vNext & Azure

    http://www.visualstudio.com/connect-event-vs