C#

SQL SERVER 与 C# 中数据类型的对应关系

private string ChangeToCSharpType(string type)
{
            string reval = string.Empty;
            switch (type.ToLower())
            {
                case "int":
                    reval = "Int32";    // int
                    break;
                case "text":
                    reval = "String";   // string
                    break;
                case "bigint":
                    reval = "Int64";    // long
                    break;
                case "binary":
                    reval = "System.Byte[]";    // byte[]
                    break;
                case "bit":
                    reval = "Boolean";  // bool
                    break;
                case "char":
                    reval = "String";   // string
                    break;
                case "datetime":
                    reval = "System.DateTime";
                    break;
                case "decimal":
                    reval = "System.Decimal";   // decimal
                    break;
                case "float":
                    reval = "System.Double";    // double
                    break;
                case "image":
                    reval = "System.Byte[]";    // byte[]
                    break;
                case "money":
                    reval = "System.Decimal";   // decimal
                    break;
                case "nchar":
                    reval = "String";
                    break;
                case "ntext":
                    reval = "String";
                    break;
                case "numeric":
                    reval = "System.Decimal";   // decimal
                    break;
                case "nvarchar":
                    reval = "String";
                    break;
                case "real":
                    reval = "System.Single";    // float
                    break;
                case "smalldatetime":
                    reval = "System.DateTime";
                    break;
                case "smallint":
                    reval = "Int16";    // short
                    break;
                case "smallmoney":
                    reval = "System.Decimal";   // decimal
                    break;
                case "timestamp":
                    reval = "System.DateTime";
                    break;
                case "tinyint":
                    reval = "System.Byte";  // byte
                    break;
                case "uniqueidentifier":
                    reval = "System.Guid";
                    break;
                case "varbinary":
                    reval = "System.Byte[]";    // byte[]
                    break;
                case "varchar":
                    reval = "String";   // string
                    break;
                case "Variant":
                    reval = "Object";   // object
                    break;
                default:
                    reval = "String";   // string
                    break;
            }
            return reval;
}

C#学习(一)

1. as 关键字其实是将类型进行内置转换,且只能用于引用类型

string xml = command.ExecuteScalar() as string;

注意:string 是 .NET Framework 中的 String 的别名,是内置 C# 类型,不是值类型。


2. 各值类型的 Parse 方法,只是将其值的字符串表示形式转换为它的等效的值

int n = int.Parse("123");


3. 各值类型的默认值

值类型的默认值是由默认构造函数返回的值类型的默认值。默认构造函数是通过 new 运算符来调用的,如下所示:

int myInt = new int();

以上语句同下列语句效果相同:

int myInt = 0;

请记住:在 C# 中不允许使用未初始化的变量。

int myInt;
Console.Write(myInt);

以上语句将报错。


值类型    默认值 
------------------
bool      false
byte      0
char      '\0'
decimal   0.0M
double    0.0D
enum      表达式 (E)0 产生的值,其中 E 为 enum 标识符。
float     0.0F
int       0
long      0L
sbyte     0
short     0
struct    将所有的值类型字段设置为默认值并将所有的引用类型字段设置为 null 时产生的值。
uint      0
ulong     0
ushort    0


4. 下表按类别列出了 C# 的值类型

值类型    类别
------------------
bool      布尔型
byte      无符号、数值、整数
char      无符号、数值、整数
decimal   数值、十进制
double    数值、浮点
enum      枚举
float     数值、浮点
int       有符号、数值、整数
long      有符号、数值、整数
sbyte     有符号、数值、整数
short     有符号、数值、整数
struct    用户定义的结构
uint      无符号、数值、整数
ulong     无符号、数值、整数
ushort    无符号、数值、整数

初识 C# 委托

MSDN:
委托是一个类型,是一个定义签名的类型,即方法的返回值类型和参数列表类型。可以使用委托类型来声明一个变量,该变量可以引用与委托签名相同的所有方法。


委托仅仅是函数指针,那就是说,它能够引用函数。

那么,定义一个委托,也就等于定义一个函数指针,

那么,函数指针指向一些什么样的函数呢?

这就在定义委托的时候决定了,如:

public delegate void ShowDelegate(int p);

这就定义了一个委托 ShowDelegate。他指向的函数的返回类型为:void,函数有 1 个参数,类型为 int 型。

委托可以用来调用函数,如:

    ShowDelegate abc = new ShowDelegate(ShowHi);

    abc(15);

也可以做为函数的参数。

但大多数委托的用途多用于事件上。

事件就是委托的实例:

public event 委托名(xxxEventHandler) 事件名/实例名;

详细请看:

http://www.cnblogs.com/finesite/articles/255884.html


using System;

public class TestDelegate
{

    public delegate void ShowDelegate(int p);

    public static void ShowHi(int a)
    {
        Console.Write("Hi:{0}\n", a);
    }

    public static void ShowHello(int b)
    {
        Console.Write("Hello:{0}\n", b);
    }

    public static void HowShow(ShowDelegate pr)
    {
        int a = 10;
        pr(a);
    }

    public static void Main()
    {
        HowShow(new ShowDelegate(ShowHello));

        ShowDelegate abc = new ShowDelegate(ShowHi);

        abc(15);
    }

}