• C#结构与枚举


    C#-结构与枚举

    1.类和结构的区别
    1.1 不同点:  
         类型:类是引用类型,结构是值类型.
         继承:类可继承,结构不能继承.结构不能继承其他的结构和类,或是被用作其他结构或类的基类.
         构造方法与析够函数:结构可以定义构造方法,但不能定义析够函数.类既可以定义构造方法,也可定义析够函数.
    1.2相同点
         对象创建:可以使用new进行初始化,或进行手工初始化.类和结构都可以.
         结构与接口:结构可以实现一个或多个接口. 如上:public struct BookComponent:IBook{  //....}.
         多态: 结构与接口之间是支持多态的.如上面的结构实现接口为例,多态:IBook book = new BookComponent();

    2.枚举
    2.1
    public enum Season
    {
        SPRING,   //春天
        SUMMER,   //夏天
        AUTUMN,   //秋天
        WINTER    //冬天
    }


    public enum SeasonTwo
    {
       SPRING = 0,   //春天
        SUMMER = 1,   //夏天
        AUTUMN = 2,   //秋天
        WINTER = 3    //冬天
    }

    用到时Console.WriteLine(Season.AUTUMN);    
                Console.WriteLine(SeasonTwo.AUTUMN);  

     FontStyle BtnFont = ( FontStyle)(Enum.Parse(typeof(FontStyle),“Bold”));
     
     简单文本编辑器
    private void SetStyle(object sender,EventArgs e)
    {           
        ToolStripButton btn 
    = sender as ToolStripButton;
        FontStyle fontStyleContent 
    = this.rchTxtContent.SelectionFont.Style;
        FontStyle BtnFont 
    = ( FontStyle)(Enum.Parse(typeof(FontStyle),btn.Tag.ToString()));
        
    if ((fontStyleContent | BtnFont) == fontStyleContent)
       {
           fontStyleContent 
    = ~BtnFont & fontStyleContent;
       }
        
    else
        {
            fontStyleContent 
    = fontStyleContent | BtnFont;
       }
        
    this.rchTxtContent.SelectionFont = new Font(this.rchTxtContent.SelectionFont.FontFamily,
                                                    
    this.rchTxtContent.SelectionFont.Size,
                                                    fontStyleContent,
                                                    
    this.rchTxtContent.SelectionFont.Unit);
    }

    2.2对象的形式实现
    何为对象的形式实现呢? 其实这个很简单,也就是将需要枚举的标识定义在对象里,通过对象的特性将其封装.详细如下代码
    public class SeasonOne
    {
        
    public static readonly SeasonOne SPRING = new SeasonOne("春天");
        
    public static readonly SeasonOne SUMMER = new SeasonOne("夏天");
        
    public static readonly SeasonOne AUTUMN = new SeasonOne("秋天");
        
    public static readonly SeasonOne WINTER = new SeasonOne("冬天");

       
    public SeasonOne(string name)
        {
            
    this.name = name;
        }

        
    //成员
        private string name;
        
    public string Name
        {
            
    get { return name; }
            
    set { name = value; }
        }
    }

    用到时 Console.WriteLine(SeasonOne.AUTUMN.Name);

    3.java中枚举的高级用法(略,见下链接)
    来自:http://www.cnblogs.com/beniao/archive/2008/07/27/1249029.html

  • 相关阅读:
    个人阅读作业Week7
    个人博客作业week3——案例分析
    结对项目——高级四则运算检验器记录(168 & 187)
    个人博客作业week2——代码复审
    个人项目---四则运算题目生成器项目记录
    第一次博客作业
    JAVA编程入门
    计算机基础知识点总结
    Java数据类型总结1
    JAVA编程入门
  • 原文地址:https://www.cnblogs.com/tuzhiye/p/1381623.html
Copyright © 2020-2023  润新知