轩辕kuku
论坛版主
论坛版主
  • UID14
  • 粉丝6
  • 关注1
  • 发帖数78
  • 社区居民
  • 原创写手
阅读:652回复:0

C#基础开发——类和结构体区别

楼主#
更多 发布于:2016-05-16 00:24
上一个节说道了类中属性和字段的区别,以及其使用的情况,这节说一下类与结构体。类和结构体很多相似之处,都包含有数据,并提供数据处理的方法。其主要区别在于它们的存储方式、访问方式,类是存储堆上引用类型,结构体是存储栈上的值类型;结构体不支持继承。先说说类,类包含数据和方法。数据的声明包含字段、常量、静态变量、属性、委托和事件成员。比如
public class People
{
      private string Name;//普通字段
      public const int IDNum;//常量
      public static int Age;//静态变量
      public delegate void WalkDelegate(float Speed);//委托
      public event WalkDelegate WalkDelegateEvent;//事件
      public string Adress//属性
      {
          get;
          set;
       }
}
上面的这些都是常用的,当然还有其他的关键字,比如 readonly(只读);大家如需要详细了解可以百度一下。这里大家可以看看readOnly和const的区别:

readonly 关键字与 const 关键字不同。
1. const 字段只能在该字段的声明中初始化。
readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。
2. const 字段是编译时常数,而 readonly 字段可用于运行时常数。
3. const 默认就是静态的,而 readonly 如果设置成静态的就必须显示声明。
4.const 对于引用类型的常数,可能的值只能是 string 和 null。readonly可以是任何类型

方法:类中的函数很多,包含构造函数、方法、终结器、迭代器和索引器等
a、构造函数应该很熟悉,实例化对象的时候都会用到,一个类可以有多个构造函数;
b、方法就是需要实现某个功能写的逻辑函数,可以是静态的static;
c、终结器用于销毁对象
d、迭代器 IEnumerable ,这样就可以使用for循环和foreach来遍历(这一块内容较多,下次用一篇来说)
e、索引器,比如函数中的this[] 来实现。这样方便访问内部数据,类似数组a
public class People:IDisposable
{
    private string Name;//普通字段
    public const int IDNum = 20;//常量
    public static int Age;//静态变量
    public delegate void WalkDelegate(float Speed);//委托
    public event WalkDelegate WalkDelegateEvent;//事件
    public string Adress//属性
    {
        get;
        set;
    }
    public People()
    {
    }
    public People(string _name)
    {
        Name = _name;
    }
    public People(string _name, int _age)
    {
        Name = _name;
        Age = _age;
    }
   
    public int getAge()
    {
        return Age;
    }
   
    //迭代器和索引器下一篇
   
    ~People()
    {
        Dispose();
    }
   
    public void Dispose()
    { 
    }
}
PS:以上内容为个人学习总结,若有错误和描述不当之处,请大家指出,共同讨论学习

图片:68_14_a728a0831681809.jpg


欢迎分享

游客

返回顶部