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. Python4Delphi也是与VCL密切相关,所以才能相互调用,绝对有研究价值!

    Python4Delphi也是与VCL密切相关,所以才能相互调用,绝对有研究价值! http://www.cnblogs.com/GarfieldTom/archive/2013/01/17/2864 ...

  2. bzoj3043

    这道题完全没想出来,引自 http://blog.csdn.net/willinglive/article/details/38419573的题解 对于带有“将一段区间内的每个数全部加上某个值”这种操 ...

  3. Delphi stdCall意义

    Delphi stdCall意义 1.此代码所在单元是个库,可被别的应用来调用,像SysUtils.DateUtils.Classes等单元一样,都是为将来的无穷无尽的应用提供服务的.2.此代码还可能 ...

  4. SSL证书的分类(按功能)

    SSL证书的分类(按功能) 一.域名型证书 DV SSL DV SSL 证书是 Domain Validation SSL Certificate 英文全称的简写,翻译成中文是域名型 SSL证书 或 ...

  5. E - Currency Exchange

    题目大意: 汇率问题,有N个银行,他们之间有一些汇率,某个人手里面拿着其中一种钱,然后在这里面兑换钱币,当然兑换是有汇率和手续费的,然后经过一系列兑换后问手里面的钱是不是能增加? ;; i<le ...

  6. poj2245

    题目分析: 抽奖 在德国乐透你需要从49个数(1,2,3......49)里面选择6个数,玩德国乐透一个流行的策略-尽管他不会增加你获奖的机会-选择一个子集S包含k(k>6)个数从这49个数字里 ...

  7. Spring配置多个数据源

    Spring 配置多数据源实现数据库读写分离 博客分类: Spring 数据库   现在大型的电子商务系统,在数据库层面大都采用读写分离技术,就是一个Master数据库,多个Slave数据库.Mast ...

  8. 学习 opencv---(10)形态学图像处理(2):开运算,闭运算,形态学梯度,顶帽,黒帽合辑

    上篇文章中,我们重点了解了腐蚀和膨胀这两种最基本的形态学操作,而运用这两个基本操作,我们可以实现更高级的形态学变换. 所以,本文的主角是OpenCV中的morphologyEx函数,它利用基本的膨胀和 ...

  9. vxworks获取系统时间编程

    #include<time.h> //头文件 unsigned int timeLen; struct timespec tp; struct tm timeBuffer; time_t ...

  10. Linux散列表(二)——宏

    散列表宏承接了双向链表宏的风范,好使好用!务必区分“结点”和“元素”!双链表宏博文中已经提及,这里不赘述! 1.获取元素(结构体)基址 #define hlist_entry(ptr, type, m ...