zoukankan      html  css  js  c++  java
  • 000-C#基础

    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编码,可以包含字符""
    System.Enum enum 所有枚举类型的基础类型
    System.Delegate delegate 多有委托类型的基础类型
    System.Array 所有数组类型的基础类型

    例如

    public enum Colors
    {
    Red,Blue,White,Yelow,Pink,Green
    }
    View Code
    枚举类型 说 明
    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(1,3);
    View Code

     匿名委托

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

     泛型

    开发中常用的泛型类型为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);

      }

    }

    索引器

     1 public class PeopleClass
     2     {        
     3         public string Name;
     4         public string Id;
     5         public PeopleClass(string id,string name)
     6         {
     7             Id = id;
     8             Name = name;
     9         }
    10     }
    11     /// <summary>
    12     /// 索引器范例
    13     /// </summary>
    14     public class PeopleList
    15     {
    16         public PeopleList()
    17         { }
    18         private ArrayList _Values = new ArrayList();
    19         /// <summary>
    20         /// 添加对象
    21         /// </summary>
    22         /// <param name="people"></param>
    23         public void AddPeople(PeopleClass people)
    24         {
    25             _Values.Add(people);
    26         }
    27         /// <summary>
    28         /// 参数为序号的索引器
    29         /// </summary>
    30         /// <param name="index"></param>
    31         /// <returns></returns>
    32         public PeopleClass this[int index]
    33         {
    34             get
    35             {
    36                 return (PeopleClass)_Values[index];
    37             }
    38             set
    39             {
    40                 _Values[index] = value;
    41             }
    42         }
    43         /// <summary>
    44         /// 参数为人员姓名的索引器
    45         /// </summary>
    46         /// <param name="name"></param>
    47         /// <returns></returns>
    48         public PeopleClass this[string name]
    49         {
    50             get
    51             {
    52                 foreach(PeopleClass people in _Values)
    53                 {
    54                     if(people.Name==name)
    55                     {
    56                         return people;
    57                     }
    58                 }
    59                 return null;
    60             }
    61         }
    62     }
    63     public class test
    64     {
    65         void testt()
    66         {
    67             PeopleList list = new PeopleList();
    68             list.AddPeople(new PeopleClass("1", "大浦安娜"));
    69             list.AddPeople(new PeopleClass("2", "泽井芽衣"));
    70             list.AddPeople(new PeopleClass("3", "卯月麻衣"));
    71             list.AddPeople(new PeopleClass("4", "樱井莉亚"));
    72             list.AddPeople(new PeopleClass("5", "雾岛奈津美"));
    73 
    74             PeopleClass people = list[0];
    75             people = list["泽井芽衣"];
    76         }
    77     }

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

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

     1 /// <summary>
     2         /// 转换Int数据到数组 
     3         /// </summary>
     4         /// <param name="data"></param>
     5         /// <returns></returns>
     6         public static byte[] ToByte(int data)
     7         {
     8             unsafe
     9             {
    10                 byte* pdata = (byte*)&data;
    11                 byte[] byteArray = new byte[sizeof(int)];
    12                 for (int i = 0; i < sizeof(int); ++i)
    13                 {
    14                     byteArray[i] = *pdata++;
    15                 }
    16                 return byteArray; 
    17             }
    18         }

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

    控件类型 中文名 前缀
    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

    读写系统配置

    属性-设置

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

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

  • 相关阅读:
    数组解耦
    curl 命令简单应用
    虾米音乐的一个小功能
    bower使用-es6的前提
    nvm安装和使用
    webpack简单入门
    tp5.0入门笔记
    如何将ts文件转为mp4格式
    c语言介绍
    简单工厂模式
  • 原文地址:https://www.cnblogs.com/ADTL/p/4545187.html
Copyright © 2011-2022 走看看