C#类型:
sbyte:System.SByte 8位有符号的整数 -128~127
short:System.Int16 16位有符号的整数
int :System.Int32 32位有符号的整数
long :System.Int64 64位有符号的整数
byte :System.Byte 8位无符号的整数
ushort:System.Uint16 16位无符号的整数
uint :System.Uint32 32位无符号的整数
ulong :System.Uint64 64位无符号的整数
注:
long=0x12ab
变量=0x(十六进制)
uint ui=1234U;
long l=1234L;
ulong ul=1234UL;
可以用小写的u,l表示
-------------------------------------------------------------------------
常量:
const int a = 1234;
-------------------------------------------------------------------------
浮点数:
float: System.Single 32位单精度浮点数
double:System.Double 64位双精度浮点数
注:
float f=12.3F;
单=双F;
--------------------------------------------------------------------------
decimal类型:
decimal: System.Decimal 128位高精度十进制
注:
decimal d = 12.30M
decimal=数字M
--------------------------------------------------------
boolean类型:
bool System.Boolean true,false(0,1出错)
---------------------------------------------------------
字符类型:
char System.char
char a='a';
/' 单引号
/" 双引号
// 反斜杠
/0 空
/a 警告
/b 退格
/f 换页
/n 换行
/r 回车
/t 水平制表符
/v 垂直制表符
----------------------------------------------------------------
字符串:
string filepath="C://ProCSharp//First.cs";
string filepath=@"C:/ProCSharp/First.cs";
对象:
object obj;
obj=null;
---------------------------------------------------------------
控制语句:
if("a"=="b")
{
//xxxxxxxx
}
else
{
//xxxxxxxxxxxxxx
}
== 等于
!= 不等于
string str="abcd";
switch(str)
{
case "abcd":
//xxxxxxx;
break;
case "efgh":
//xxxxxxx;
break;
default;
//xxxx
break;
}
for(int i;i<dtData.Rows.Count-1;i++)
{
//
}
while(1=1)
{
//先判断,后执行
}
do
{
//先执行,后判断
}while(1=1)
foreach(int i in abc) //其中abc是一个整型数组
{
}
break;
continue;
return;
----------------------------------------------------------
类:
class PhoneCustomer
{
private int iIndex;
public void GetData()
{
//xxxxxxxxxxxxxxxx
}
}
---------------------------------------------------------
结构:
struct PhoneCustomer //值类型
{
public const int DayOfSendingBill = 1;
public xxxxx
}
------------------------------------------------------------
修饰符:
new :方法隐藏了同名的的继承方法
public :方法可以在任何地方访问,包括类的外部
protected :方法可以在它所属的类的内部被访问,或者派生于该类的类型中被访问
internal :方法可以在同一个程序中被访问
private :方法仅可以在它所属的类的内部被访问
static :方法仅不能在类的特定实例上执行
virtual :方法可以被其派生的类重写
abstract :这个虚方法定义了方法名,但没有提供执行方式
override :方法重写继承的方法或抽象的方法
sealed :方法重写继承的虚方法,但不能被派生于这个类的其他类重写,必须和重写方法一起使用
extern :方法在处部用另一种语言被执行
------------------------------------------------------------------------------
方法:
static void SomeFunction(int[] ints,ref int i) //数组按引用传值,ref也是按引用传
{
ints[0] = 100;
i = 100;
}
------------------------------------------------------------------
out:
static void SomeFunction(out int i)
{
i=100;
}
public static int Main()
{
SomeFunction(out i); //不用初始化i
Console.WriteLine(i);
return 0;
}
------------------------------------------------------------------------------
数组:
C#中的数组用方括号表示.
C#中声明数组时,后台会实例化.NET基类System.Array的一个实例.
int[] integers;
int[] integers=new int[32];
integers[0]=35;
integers[31]=432;
int[] integers; //动态数组
integers = new int[32];
string[] artists={"abc","def","1234","45678"};
Array.Sort(artists); //排序
Array.Reverse(artists); //反序排列
foreach(string name in artists)
{
Console.WriteLine(name);
}
多维数组:
<1>:矩形数组:
二维数组:string[,] beatleName = {{"abc","abc"},{"abc","abc"},{"abc","abc"},{"abc","abc"}};
三维数组:string[,,] my3DArray;
<2>:正交数组
int[][] a=new int[3][];
a[0] = new int[4];
a[1] = new int[3];
a[0] = new int[1];
-------------------------------------------------------------------------------------------
运算符:
算术运算符: + - * / %
逻辑运算符: & | ^ ~ && || !
字符串连接运算符: +
增量和减量运算符: ++ --
移位运算符: << >>
比较运算符: == != -= *= /= %= &= |= ^= <<= >>=
成员访问运算符(用于对象) .
索引运算符(用于数组和索引器) []
数据类型转换运算符:()
条件运算符?:
对象创建运算符:new
类型信息运算符:sizeof(只用于不安全代码) is typeof
溢出异常控制运算符:checked unchecked
间接导址运算符: * -> &(只用于不安全代码) []
is运算符:
is运算符可以检查对象是否与特定的类型兼容.
int i=10;
if(i is object)
{
Console.WriteLine("i is an object");
}
sizeof运算符:
使用sizeof运算符可以确定堆桡中值类型需要的长度(单位是字节)
string s="A string";
unsaft //不安全代码
{
Console.WriteLine(sizeof(int));
}
typeof运算符
Typeof运算符返回一个表示特定类型的Type对象.
typeof(string) 返回表示System.String类型的Type对象
--------------------------------------------------------------------------------
类型转换:
隐式转换:小-->大
显式转换:
string str="100";
int i=int.Parse(s);
装箱(Boxing):值-->引用
取消装箱(Unboxing):引用-->值
枚举:
枚举是用户定义的整数类型,在声明一个枚举时,要指定该枚举可以包含的一组可接受的实例值.
public enum TimeOfDay
{
Morning = 0,
Afernoon = 1,
Evening = 2
}
取得枚举字符串:
TimeOfDay time = TimeOfDay.Afternoon;
ConsoleWriteLine(time.ToString()):
取得枚举值:
TimeOfDay time2 = (TimeOfDay) Enum.Parse(typeof(TimeOfType),"afternoon",true);
Console.WriteLine((int)time2);
-------------------------------------------------------------------------------------
命名空间:
用.他隔
using语句:
using System;//命名空间
using alias = NamespaceName;//别名
---------------------------------------------------------------------------------------
格式字符串的完整列表:
字符串:说明
C 本地货币格式
D 十进制格式,把整数转换为以10位基数的数,如果给定一个精度说明符,就加上一个前导0
E 科学计数法(指数)格式,精度说明符设置小数位数(默认情况下为6).字符串格式的大小写("e"或"E")确定指数符号的大小写.
F 固定点格式,精度说明符设置小数位数,可以为0
G 一般格试,使用E或F格式取决于哪种格式最紧凑
N 数字格式,用逗号码表示千分符,例如:32,767.44
P 百分数格式
X 16进制格式,精度说明符号用于加上前导0
----------------------------------------------------------------------------------------
注解:
/// <summary>
/// 注解
/// </summary>
/// <returns>方法返回值</returns>
/// <param name="e1">参数e1说明</param>
/// <param name="e2">参数e2说明</param>
重写;
class MybaseClass
{
public virtual string VirtualMethod()
{
return "xx";
}
}
class MyDerivedClass:MyBaseClass
{
public override string VirtualMethod()
{
retrun "xx";
}
}
-----------------------------------------------------------
隐藏:
class HisBaseClass
{
//various members
}
class MyDervedClass:HisBaseClass
{
public int MyGroovyMethode()
{
//some
}
}
class MyDerivedClass:HisBaseClass
{
public new int MyGroovyMethode()
{
//some
}
}
------------------------------------------------------------------
访问基类:
base.
-------------------------------
abstract:
抽象类:不能实例化
抽角方法:没有执行代码
必须在非抽象的的类中重写
例:
abstract class Building
{
public abstract decimal asdfasdf();
}
---------------------------------------------
密封类和密封方法:
sealed:不能继承该类,方法不能重写方法
----------------------------------------------------
访问修饰符:
public 变量或方法可以作为它所属的类型的一个字段,在任何地方都可以访问它
internal:变量或方法只能在当前程序中被访问
protected:变量或方法只能在它所属的类型中被访问,或者在派生该类型的其他类型中被访问
protected internal:变量或方法只能在程序集中被访问,或者在派生当前类型的其他类库中被访问(如果变量或方法声明为protected或
internal,就能在任何地方访问它)
private:
-------------------------------------------------------
属性:
private string foreName;
public string ForeName;
{
set
{
return foreName;
}
get
{
foreName=value;
}
}
//只读属性
private string foreName;
public string ForeName;
{
get
{
foreName=value;
}
}
-----------------------------------------------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[sp]
Go
SET QUOTED_IDENTIFIER ON
Go
SET ANSI_NULLS OFF
Go
CREATE PROCEDURE sp_CurrencyType_Update
(
@ID int,
@N varchar(50),
@E money
)
WITH ENCRYPTION
As
Update
Ce
Set
N = @,
E = @E
Where
ID = @ID
Go
SET QUOTED_IDENTIFIER OFF
Go
SET ANSI_NULLS ON
Go