欢迎使用CSDN-markdown编辑器

来源:互联网 发布:安卓权威编程指南pdf 编辑:程序博客网 时间:2024/05/16 19:11

C# 第一天


类成员:

属性

    public class Animal    {        private int _age; //定义私有变量        public int Age { get { return _age; } set { _age = value; } } //赋值属性    }    //定义访问器Age,当字段为私有的时候,不能通过类名.访问,但是可以通过访问器访问    Animal bird = new Animal(); //创建对象    bird.Age = 1;       //VS2008属性的声明被简化,如下    public class Animal //创建类    {        public int Age { get; set; } //简便的属性编写    }

事件

事件是一个对象向其他对象提供有关事件发生的通知的一种方式。在C#中,事件是使用委托来定

义和触发的。类或对象可以通过事件向其他类或对象通知发生的相关事情。发送或引发事件的类称为“发行者”,接收或处理事件的类称为“订阅者”。例如在Web Form 中双击按钮的过程,就是一个事件,控件并不对过程做描述,只是负责通知一个事件是否发生。事件具有以下特点:
1. 事件通常使用委托事件处理程序进行声明。
2. 事件始终通知对象消息并指示需要执行某种操作的一种方式。
3. 发行者确定何时引发事件,订阅者确定执行何种操作来响应该事件。
4. 一个事件可以有多个订阅者。一个订阅者可处理来自多个发行者的多个事件。
5. 没有订阅者的事件永远不会被调用。
6. 事件通常用于通知用户操作,例如,图形用户界面中的按钮单击或菜单选择操作。
7. 如果一个事件有多个订阅者,当引发该事件时,会同步调用多个事件处理程序,也可以使用异
步处理多个事件。
声明委托和事件的示例代码如下所示。

    public delegate void AnimalEventHandler(); //声明委托    public class Animal //创建类    {        public event AnimalEventHandler OnFly; //声明事件        public void Fly() //创建类的方法        {            OnFly(); //使用事件        }    }    Animal bird = new Animal(); //创建对象    bird.OnFly += new AnimalEventHandler(TestAnimal); //注册事件    bird.Fly(); //使用方法

(这里有待以后详解)


构造函数&析构函数

构造函数

在变量中,常常需要初始化变量,而在类的声明中,也需要构造和初始化类。在类中,构造函数是
在第一次创建对象时调用的方法。在任何时候,只要创建了一个对象,编译器就会默认的调用构造函数
并执行构造函数。构造函数与类名相同,并且一个类可以有一个或多个构造函数

public class Animal              //创建一个类{    public string AnimalName;    //创建Animal 名称字段    public Animal()              //使用构造函数    {        AnimalName = "动物"       //赋值私有变量    }}

上述代码声明了一个Animal 类,并使用构造函数,构造函数与类同名。当声明一个对象时,系统
默认使用此构造函数进行对象的构造。另外,构造函数也可以传递参数,示例代码如下所示。

public class Animal{    public string AnimalName; //创建AnimalName 名称字段    public Animal() //无参数的构造函数    {        AnimalName = "动物"; //赋值私有变量    }    public Animal(string name) //有参数的构造函数    {        AnimalName = name; //私有变量获取传递的参数    }}

构造函数方便了开发人员设置默认值、限制实例化来编写灵活并且便于阅读的代码。

析构函数

析构函数是将当前对象从内存中移除时运行和调用的方法,析构函数的使用通常是为了确保需要释
放的对象资源都得到了适当的处理。析构函数的函数名和类名基本相同,在方法前还需要“~”符号来
声明该方法是类的析构函数。对于析构函数,有以下几个特点。
1.只能对类定义析构函数,结构不支持析构函数。
2.一个类只能有一个析构函数。
3.无法继承或重载析构函数。
4.无法调用析构函数,在对象注销时,系统会自动调用。
5.析构函数即没有修饰符也不能为它传递参数。
创建析构函数示例代码如下所示。

    public class Animal //创建类    {        public string AnimalName; //创建AnimalName 名称字段        public Animal() //使用构造函数        {            AnimalName = "动物"; //赋值共有字段        }        ~Animal() //使用析构函数        {            AnimalName = String.Empty; //将字符串清空        }    }

构造函数隐式的对对象的基类调用Finalize,所以开发人员无法控制在何时调用析构函数。
在确保了对象没有被任何应用程序使用后,C#的垃圾回收机制会自动清除不再使用的对象的资源。对于开发人员而言,虽然可以显式的使用Collect 进行垃圾回收机制,但是会影响应用程序的性能。

对象的生命周期

类成员权限
1. public
public 字段具有最高访问级别,任何它的对象或者其他的类都能对public 关键字所修饰的类或类成员进行访问
2. private
private 字段具有最低的访问级别,它能够保证类和类成员的安全,却限制了其他类或对象对它的访问。私有成员只有在声明他们的类之后才能访问
默认为私有
3. protected
protected 字段具有保护类中字段的功能,能够保证类和类成员的安全性,也能够限制其他类或对象对它的访问。但是与private 不同的是,protected 能够在类和类的的派生类中使用,比private 具有更高的访问级别,又比public 拥有更低的访问级别,保证了类的安全性
4. internal
internal 字段修饰的类或类成员只有在同一程序集的文件中内部类型或成员才可以访问

这种程序集的文件中内部类型或成员才可以访问的修饰符通常是基于组件开发的,因为它能够使一组组件能够以私有方式进行合作,保证了组件的安全性。通常情况下,ASP.NET 中页面控件都是通过内部组件方式进行合作。另一方面,这些访问权限修饰符还能够组合使用,例如protected internal 就可以进行组合使用,组合使用所修饰的对象只有该类和该类派生的类的成员才可以访问。

垃圾回收机制

在ASP.NET 或者Win Form 开发中,显式的使用Dispost 方法能够提高应用程序的性能。同样,析构函数也是一种清理资源的方法,在对象析构时,可以用Dispose 对对象的资源,以及连接信息进行清空从而对对象进行释放。

命名空间

0 0
原创粉丝点击