1.1数据类型(P43)

类型

别名

允许的值

sbyte

System.SByte

-128~127

byte

System.Byte

0~255

short

System.Int16

-32768~32767

ushort

System.Uint16

0~65535

int

System.Int32

-2147483648~2147483647

uint

System.UInt32

0~4294967295

long

System.Int64

-9223372036854775808~9223372036854775807

ulong

System.UInt64

0~18446744073709551615

char

System.Char

一个Unicode字符,0~65535

bool

System.Boolean

true/false

sring

System.String

一组字符

float

System.Single

1.5*10^-45~3.4*10^38

double

System.Double

5.0*10^-324~1.7*10^308

decimal

System.Decimal

1.0*10^-28~7.9*10^28

1.2枚举类型(P97)

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//【例子1】枚举的基本应用

//1)赋值是可以使用其枚举值赋值,如ct=emCardType.Temic;也可以直接用数值赋值,如ct = (emCardType)3;也可用将字符串经过转换//  赋值给枚举变量,如ct = (emCardType)Enum.Parse(typeof(emCardType), "M1")

//2)使用WritenLine时其实是调用其ToString()方法将其转换为字符串

//3)可以将没有枚举到的数值赋给枚举变量,但ToString()方法显示的字符串为其值

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

enum emCardType:byte

{

Temic,

Em=2,

ID,

M1

}

emCardType ct;

ct=emCardType.Temic ;

Console.WriteLine("ct is {0},value is {1}", ct,(byte)ct);             //显示"ct is Temic,value is 0"

ct++;

Console.WriteLine("ct is {0},value is {1}", ct,(byte)ct);             //显示"ct is 1,value is 1"

ct = (emCardType)Enum.Parse(typeof(emCardType), "M1");

Console.WriteLine("ct is {0},value is {1}", ct, (byte)ct);            //显示"ct is M1,value is 4"

ct = (emCardType)3;

Console.WriteLine("ct is {0},value is {1}", ct.ToString(), (byte)ct); //显示"ct is ID,value is 3"

Console.ReadKey();

1.3数组

1)一维数组定义

int[] myIntArray = { 5, 9, 10, 2, 99 };

int[] myIntArray = new int[5];

int[] myIntArray = new int[5] { 5, 9, 10, 2, 99 };

2)多维数组定义

double[,] hillHeight = new double[3, 4];

double[,] hillHeight = { { 1, 2, 3, 4 }, { 2, 3, 4, 5 }, { 3, 4, 5, 6 } };

3)数组的数组

int [][] myarray

myarray=new int[2][];

myarray[0]=new int[3];

myarray[1]=new int[4];

myarray=new int[3][](new int[]{1,2,3},new int[]{1},new int[]{1,2});

foreach (int[] subarray in myarray)

{

foreach(int nValue in subarray)

Console.WriteLine(nValue);

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//【例子1】数组复制

//若直接使用=号则两个数组引用相同的值,要使用CopyTo方法进行复制

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

int[] myInt = new int[5]{5,2,1,8,4};

foreach (int i in myInt)

Console.Write(i + ",");

Console.WriteLine("");

int[] myInt2=new int[5];

myInt.CopyTo(myInt2,0);

//myInt2 = myInt;

myInt[1] = 3;

foreach (int i in myInt2)

Console.Write(i + ",");

1.4委托(P137)

【例子1

class Program

{

delegate double ProcessDelegate(double param1,double param2);

static double Multiply(double param1,double param2)

{

return param1*param2;

}

static double Divide(double param1,double param2)

{

return param1/param2;

}

static void Main(string[] args)

{

ProcessDelegate process;

if (input=="M")    //根据输入的不同将其实例化为不同的函数

process=new processDelegate(Multiply);

else

process=new processDelegate(Divide);

double fRet=process(f1,f2);

}

}

【例子2

private delegate int mif_selecom(int nCom, int nBaud);

private void button1_Click(object sender, EventArgs e)

{

IntPtr pDll = LoadLibrary("LC32RFRW.dll");

IntPtr pAddressOfFunctionToCall = GetProcAddress(pDll, "mif_selecom");

mif_selecom DoSeleCom = (mif_selecom)Marshal.GetDelegateForFunctionPointer(pAddressOfFunctionToCall,

typeof(mif_selecom));

}

【C#学习笔记】一、基础知识的更多相关文章

  1. MyBatis:学习笔记(1)——基础知识

    MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...

  2. C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

    一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...

  3. C#学习笔记(基础知识回顾)之值传递和引用传递

    一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...

  4. C#学习笔记(基础知识回顾)之值类型和引用类型

    一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...

  5. Quartz学习笔记:基础知识

    Quartz学习笔记:基础知识 引入Quartz 关于任务调度 关于任务调度,Java.util.Timer是最简单的一种实现任务调度的方法,简单的使用如下: import java.util.Tim ...

  6. .net学习笔记---xml基础知识

    一.XML简介 XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据.XML文档以.xml为后缀.需要彻底注意的是XML是区分大小写的. 先从一个简单的XML例子来了解下xml基 ...

  7. Docker的学习笔记(一)基础知识

    概述 本人最近在学习docker相关的知识,既是工作本身的需要也是自己对技术的追求的必要,以后我也会推出容器相关的随笔,既可以增长自己的知识,也可以和读者广泛交流,岂不乐乎?话不多说.第一篇先介绍do ...

  8. Scala学习笔记--正则表达式基础知识、如何在scala内使用

    正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 基础知识:正则表达式30分钟入门教程 http://www. ...

  9. (C/C++学习笔记) 一. 基础知识

    一. 基础知识 ● 程序和C/C++ 程序: 根据Wirth (1976), Algorithms + Data Structures = Programs. Whence C: 1972, Denn ...

  10. C#学习笔记(基础知识回顾)之枚举

    一:枚举的含义 枚举是用户定义的整数类型.在声明一个枚举时,要指定该枚举的示例可以包含的一组可接受的值.还可以给值指定易于记忆的名称.个人理解就是为一组整数值赋予意义. 二:枚举的优势 2.1:枚举可 ...

随机推荐

  1. codeforces D. Painting The Wall

    http://codeforces.com/problemset/problem/399/D 题意:给出n和m,表示在一个n*n的平面上有n*n个方格,其中有m块已经涂色.现在随机选中一块进行涂色(如 ...

  2. 试玩GitHub

    SVN是可以,但GitHub越来越屌啊... SO...要玩起来.. 参考URL: http://jingyan.baidu.com/article/f7ff0bfc7181492e27bb1360. ...

  3. JPA概要

    1 JPA概述 JPA(Java Persistence API,Java持久化API),定义了对象-关系映射(ORM)以及实体对象持久化的标准接口. JPA是JSR-220(EJB3.0)规范的一部 ...

  4. Farm Irrigation(并查集)

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...

  5. 数学(矩阵乘法):HDU 4565 So Easy!

    So Easy! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  6. poj 2408 Apple Tree

    http://poj.org/problem?id=2486 典型的回溯题目:特别是状态方程用三维的来标记是否要走回路. 题意:一颗树,n个点(1-n),n-1条边,每个点上有一个权值,求从1出发,走 ...

  7. Simplify Path——LeetCode

    Given an absolute path for a file (Unix-style), simplify it. For example,path = "/home/", ...

  8. Binary Tree Zigzag Level Order Traversal——LeetCode

    Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...

  9. 使用XRDP实现Windows远程桌面Linux系统

    一般情况下我们用ssh客户端远程登陆Linux系统,至于图形界面下的linux远程登陆工具,我们一般都会想到vnc,但它的安全性不够,在这里,我将介绍XRDP的安装配置方法.我们可以很方便的通过Win ...

  10. Android吧数据保存成xml文件

    public class MainActivity extends Activity { private List<Person> persons; @Override protected ...