1.数据类型是必不可少的根本,接下来我来讲述一下我对自己常用.Net数据类型的了解.
<值类型>
数据数值类: int 范围:(-2147483648~2147483647)有符号整数(4字节Int32,'long'8字节Int64,'short'2字节Int16)
float 范围:(1.5*10^-45~3.4*10^38)单精度32位数字
double 范围:(-1.79769313486232e308~1.79769313486232e308)双精度64位数字
byte 范围:(0~255)无符号整数
decimal 范围:(1*10^-28~7.9*10^2)十进制数字
Boolean 范围:(True OR False)关键字:bool
Char 范围:(0~65535)整数Unicode字符
<引用类型>
Class 类
《new, this, base, static 装箱'值类型转化成对象类型',拆箱'对象类型转化成值类型'》
Interface 接口
Dynamic 动态类型
Object 大父类
String 字符串
《常用方法:Trim——'去除字符串头尾两端的指定字符';转义字符:"\";对字符串进行修改使用StringBuilder,修改的是本对象而不是新对象》
Delegate 委托
Array 数组
Var 匿名类型
2.运算符和基础语句
运算符类别 | 运算符表示符号 |
基本 | x.y f(x) a[x] x++ x-- new typeof chaecked -> |
一元 | + - ! ~ ++X --X (T)x True False & sizeof |
乘法 | * / % |
加法 | + - |
变换 | << >> |
关系类型检测 | < > <= >= is as |
相等 | == != |
逻辑"与" '或' | & | |
条件 | &and || OR |
条件运算 | ?: |
赋值 | = += -= *= /= %= &= |= ^= <<= >>= ?? |
分支语句
三元运算符
(……)?b:c
值可能为空时的取值方式
(s == null) ? "" :s;
if else语句
if(){}
else if(){}
else{}
switch语句 switch(var)
{
case <value>: …… break;
default: …… break;
}
迭代语句
do/while循环
do
{……}
while(<test>);
while循环
while(<test>)
{……}
for循环
for(<初始化>;<条件>;<操作>)
{……}
foreach,in循环
foreach(<baseType> <name> in <array>)
{……}
跳转语句
break continue goto return
一场块语句
throw try-catch-finally
3.Net方法
方法访问修饰符
private: 私有的,类本身才能访问
protected:受保护的,类本身及派生类可以访问
internal: 内部的,同一程序集内部类型才可以访问
public: 公共的,内部与外部都可以访问
irtual 虚拟的 static 静态的 abstract 抽象的 sealed 封闭的 override 继承的
main方法
重载方法: 定义一组名字相同的成员,他们的参数数量或者类型不同
泛型方法: static void 方法名<T>(参数类型 参数)
4.Net索引器
索引器允许类或结构的实例按照与数组相同的方式进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。
特性:
索引器使得对象可按照与数组相似的方法进行索引。
get 访问器返回值。set 访问器分配值。
this 关键字用于定义索引器。
value 关键字用于定义由 set 索引器分配的值。
索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。
索引器可被重载。
索引器可以有多个形参,例如当访问二维数组时
代码示例:
class SampleCollection<T>
{
private T[] arr = new T[100];
public T this[int i]
{
get
{
return arr[i];
}
set
{
arr[i] = value;
}
}
}
class Program
{
static void Main(string[] args)
{
SampleCollection<string> stringCollection = new SampleCollection<string>();
stringCollection[0] = "Hello, World";
System.Console.WriteLine(stringCollection[0]);
}
}
5.Net迭代器
只需提供一个迭代器,即可遍历类中的数据结构。当编译器检测到迭代器时,它将自动生成 IEnumerable 或 IEnumerable<T> 接口的 Current、MoveNext 和 Dispose 方法。
迭代器是可以返回相同类型的值的有序序列的一段代码。
迭代器可用作方法、运算符或 get 访问器的代码体。
迭代器代码使用 yield return 语句依次返回每个元素。yield break 将终止迭代。
可以在类中实现多个迭代器。每个迭代器都必须像任何类成员一样有唯一的名称,并且可以在 foreach 语句中被客户端代码调用,如下所示:foreach(int x in SampleClass.Iterator2){}
迭代器的返回类型必须为 IEnumerable、IEnumerator、IEnumerable<T> 或 IEnumerator<T>。
代码示例
public class DaysOfTheWeek : System.Collections.IEnumerable
{
string[] m_Days = { "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat" };
public System.Collections.IEnumerator GetEnumerator()
{
for (int i = 0; i < m_Days.Length; i++)
{
yield return m_Days[i];
}
}
}
class TestDaysOfTheWeek
{
static void Main()
{
DaysOfTheWeek week = new DaysOfTheWeek();
foreach (string day in week)
{
Syste