IT学习者 | 文章大全 | 技术文档 | 桌面壁纸 | 实用查询 | 网络电台 | 成语 | 歇后语 | 网址 | 下载 | 周公解梦 | 生日密码 | 电视剧365 | Flash
 您现在的位置: IT学习者 >> 文章大全 >> 网络编程 >> ASP.NET

C#速成(Quick C#)

【 作者:bigqiang翻译    来源:http://www.fazhuan.com/  更新时间:2004-7-27 | 字体:


-------------------
修饰符
-------------------
你必须已经知道public、private、protected这些常在C++当中使用的修饰符。这里我会讨论一些C#引入的新的修饰符。

readonly(只读)
readonly修饰符仅在类的数据成员中使用。正如这名字所提示的,readonly 数据成员仅能只读,它们只能在构造函数或是直接初始化操作下赋值一次。readonly与const数据成员不同,const 要求你在声明中初始化,这是直接进行的。看下面的示例代码:

class MyClass
{
    const int constInt = 100;    //直接初始化
    readonly int myInt = 5;      //直接初始化
    readonly int myInt2;     //译者注:仅做声明,未做初始化
    
    public MyClass()
    {
        myInt2 = 8;              //间接的
    }
    public Func()
    {
        myInt = 7;               //非法操作(译者注:不得赋值两次)
        Console.WriteLine(myInt2.ToString());
    }
    
}

sealed(密封)
密封类不允许任何类继承,它没有派生类。因此,你可以对你不想被继承的类使用sealed关键字。

sealed class CanNotbeTheParent
{
    int a = 5;
}

unsafe(不安全)
你可使用unsafe修饰符来定义一个不安全的上下文。在不安全的上下文里,你能写些如C++指针这样的不安全的代码。看下面的示例代码:

public unsafe MyFunction( int * pInt, double* pDouble)
{
    int* pAnotherInt = new int;
    *pAnotherInt  = 10;
    pInt = pAnotherInt;
    ...
    *pDouble = 8.9;
}




-------------------
interface(接口)
-------------------

如果你有COM方面的概念,你会立亥明白我要谈论的内容。一个接口就是一个抽象的基类,这个基类仅仅包含功能描述,而这些功能的实现则由子类来完成。C#中你要用interface关键字来定义象接口这样的类。.NET就是基于这样的接口上的。C#中你不支持C++所允许的类多继承(译者注:即一个派生类可以从两个或两个以上的父类中派生)。但是多继承方式可以通过接口获得。也就是说你的一个子类可以从多个接口中派生实现。

using System;
interface myDrawing
{
    int originx
    {
        get;
        set;
    }
    int originy
    {
        get;
        set;
    }
    void Draw(object shape);
}

class Shape: myDrawing
{
    int OriX;
    int OriY;

    public int originx
    {
        get{
            return OriX;
        }
        set{
            OriX = value;
        }
    }
    public int originy
    {
        get{
            return OriY;
        }
        set{
            OriY = value;
        }
    }
    public void Draw(object shape)
    {
        ...    // do something
    }
    
    // class's own method
    public void MoveShape(int newX, int newY)
    {
    .....
    }
    
}




-------------------
Arrays(数组)
-------------------

C#中的数组比C++的表现更好。数组被分配在堆中,因此是引用类型。你不可能访问超出一个数组边界的元素。因此,C#会防止这样类型的bug。一些辅助方式可以循环依次访问数组元素的功能也被提供了,foreach就是这样的一个语句。与C++相比,C#在数组语法上的特点如下:

方括号被置于数据类型之后而不是在变量名之后。
创建数组元素要使用new操作符。
C#支持一维、多维以及交错数组(数组中的数组)。

示例:

    int[] array = new int[10];              // 整型一维数组
    for (int i = 0; i < array.Length; i++)
        array[i] = i;

    int[,] array2 = new int[5,10];          // 整型二维数组
    array2[1,2] = 5;

    int[,,] array3 = new int[5,10,5];       // 整型的三维数组
    array3[0,2,4] = 9;

    int[][] arrayOfarray = = new int[2];    // 整型交错数组(数组中的数组)
    arrayOfarray[0] = new int[4];
    arrayOfarray[0] = new int[] {1,2,15};




-------------------
索引器
-------------------

索引器被用于写一个访问集合元素的方法,集合使用"[]"这样的直接方式,类似于数组。你所要做的就是列出访问实例或元素的索引清单。类的属性带的是输入参数,而索引器带的是元素的索引表,除此而外,他们二者的语法相同。

示例:

注意:CollectionBase是一个制作集合的库类。List是一个protected型的CollectionBase成员,储存着集合清单列表。
class Shapes: CollectionBase
{
    public void add(Shape shp)
    {
        List.Add(shp);
    }

    //indexer
    public Shape this[int index]
    {
        get {
            return (Shape) List[index];
        }
        set {
            List[index] = value ;
         }
     }
}


文章共6页,当前在第3页 9 7 [1] [2] [3] [4] [5] [6] 8 :
相 关 文 章
相 关 软 件

音乐
画心 放生 天亮了 牡丹江 那滋味 擦肩而过 放手去爱 北京欢迎你 依然在一起 吻得太逼真 牵手的右前方 坐上火车去拉萨 如果爱能早些说出来
心碎 稻香 从新爱 别碰我 魔杰座 红楼梦中 为你而活 一定要爱你 等爱的玫瑰 失落非主流 越单纯越幸福 最后一次的温柔 孤独的时候可以抱你
光荣 火花 下雨天 小酒窝 樱花草 为你写诗 无可取代 无情的温柔 寂寞才说爱 忘不掉的伤 爱上你是个错 陪你一起看草原 地球人都知道我爱你
假如 相思 女儿红 有缘人 舍不得 我的答铃 如何是好 外滩十八号 我们的纪念 摇滚怎么了 和寂寞说分手 爱上你是我的错 爱情里没有谁对谁错
加入收藏留言建议自助友情链接普通友情链接站长的Blog
版权所有   COPYRIGHT 2002-2008 ★IT学习者★ ALL RIGHTS RESERVED.