• C#概念总结(三)


    1、定义结构体

      定义了结构体,必须使用了stuct语句,struct定义了一个带有多个成员的的新数据类型。C# 的结构不同于C的。具有一下等特点:

      结构可以有方法。字段、索引、属性、运算方法和事件。结构可以定义构造函数,但是不能定义析构函数,也不能定义默认的构造函数。与类不同得失结构不能继承其他结构。或者类、结构不能作为其他结构的基础捉着类。结构可以实现一个或者对个接口。

    结构成员不能是abstract 、vritual 、protected 。当我们使用new 操作符创建一个结构对象的时候。会调用适当的构造函数创建结构。与类不同,结构可以不适用new 关键字既可以被实例化。 如果不适用new 操作符。只有在所用的字段都内初始化之后,字段才会被赋值。对象才会被使用,

     using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    struct book {
        public String book_title;
        public String book_name;
        public String book_subject;
        public int book_id;
        public void getValue(String t, String a, String b, String d, int n) {
            book_title = a;
            book_name = b;
            book_subject=t;
            book_id=n;
        }
        public void display() {
            Console.WriteLine("Title {0}", book_name);
            Console.WriteLine("book_title {0}", book_title);
            Console.WriteLine("book_subject {0}", book_subject);
            Console.WriteLine("book_id {0}", book_id);
            Console.WriteLine("book_name {0}", book_name);
        }
            
    }

    namespace ConsoleApplication12
    {
        class Program
        {
            static void Main(string[] args)
            {
                book book1 = new book();
                book book2 = new book();
                book1.getValue("c programer", "C #", "java", "编程语言", 12412312);
                book2.getValue("python programer", "c++ ", "java", "编程语言", 124123412);
                book1.display();
                book2.display();
                Console.ReadLine();
                Console.ReadKey();
            }
        }
    }
    2、C#枚举类型:  枚举类型是一组命名整数常量,枚举类型使用enum关键字声明。   C#枚举是值类型,枚举包含自己的值,且不能继承传递。

    enum  <enum_name>  {enumeration list  } ; 

    3、当你定义一个类的时候,你定义了一个数据类型的蓝图,这实际上没哟与定义任何的数据,但是他定义了类的名称,意味着类的对象有什么组成以及这个对象上可执行是么样的操作,对象是实例额的,构成类的方法和变量成为类的成员。

     类的默认访问标志符是internal   ,成员的默认访问标志符是 private

    类的成员函数是一个类定义中有他定义或者原型函数,就像其他变量一样作为一个类的成员,他能在类的任何对象上操作。且能访问该对象的类的所有成员。

     C#中的构造函数是一个特殊的函数成员,当创建类的新对象时候执行。 构造函数的名称和类的名称相同,他没有任何的返回类型。下面说明构造函数返回类型。

    默认构造函数没有任何的参数。但是如果需要一个带有参数的构造函数,这种构造函数的参数叫做参数化的构造函数,这种技术可以使得创建函数的时候对给的对象赋值初始化。具体的实例如下:

       C#中的析构函数 是一个特殊的成员函数,当类的对象超出范围时执行。析构函数的名称是再去爱类的名称之前加上一个~线,他不返回值,也不带任何参数。

    析构函数用于在结束程序之前石峰资源,西沟函数不能继承和重载。

      C#类的静态成员

       我们可以使用static 关键字吧雷闯元定义我建泰的,当我们声明静态的时候,意味无论多少个里类的对象来创建,只会有一个静态成员的副本。声明为静态的变量可以直接通过类来调用。静态冰凉可以在成员函数或者类的定义外部进行初始化,也可以在类的定义内部初始化静态变量。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    namespace ConsoleApplication17
    {
        class Static {
            public static int num;
            public void count()
            {
                num++;
            }
            public int getNum()
            {
                return num;
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                Static s1 = new Static();
                s1.count();
                s1.count();
                s1.count();
                Console.WriteLine("s1的变量num {0}", s1.getNum());
                Console.ReadLine();
                Console.ReadLine();

            }
        }
    }
    4、C#继承

        继承是面向对象小衡虚设计中的重要概念,继承允许我们根据一个类定义类定义另一个类,这使得创建和维护应用程序变得简单,同时节约了开发的时间。当创建一个类的时候,程序员不需要重新编写新的数据成员函数,只需要设计一个新的类,继承了集资的类的成员即可已有的类被称为基类,这个新的类叫做派生类。

    集成的思想实现了 (is_A)的关系。一个类可以派生多个类或者接口。 这就意味着从这个基类或者接口继承数据和函数。C#继承不同于Java的继承  Java继承使用的是 extends关键字。

      派生类继承了街垒的成员和方法,因此父类对象在子类对象创建之前被创建,

     多重继承,是指一个类可以同时从多余一个父类继承行为与特征的功能,与单一继承相对,单一继承指一个类只可以继承一个父类,C#不支持多重继承,但是课可以使用接口类实现多重继承的效果。

       下面就单纯的接口做一个简单的列子:

        using System

       namespace inheritanceApplication

     {

    class  shap{

     public void setWidth(int w){

    width=w;

    }

    public void setHeight(int h){

    height=h;}

    }

    protected int height;

    protected int width;

    }

    public interface Paintcost{

    int getCost(int area);

    }

    public Rectangle:shape,Paintcost{

    public int getArea(){

    return width*height;

    }

    public int getcost(int area){

    return area=23;

    }

    }

    6、C#多态性

       多态性意味着多重形式,在面向对象编程的范畴中,多态性往往表现为一个接口多个功能。多态性可以使静态的多态也可以是动态的多态。静态多态中,函数的响应式在编译时发生,动态的的多态函数的响应是运行时发生。

    静态多态性: 在编译的时候,函数和对象的链接机制被称为早期的绑定,也称为静态绑定,C#提供两种技术来事项静态的多态性。分别为函数的重载,和云算符的重载。

      函数重载:可以在同一个范围内对相同的函数名有多个定义,函数定义必须彼此不同,可以是参数列表中的参数不同,也可以是参数的个数不同。不能重载只有返回类型不同的函数声明。

    动态多态性:C#允许使用关键字abstract创建抽象类,用于提供接口的部分类的试下,当一个派生类继承自该抽象类时,实现即完成,抽象类包含抽象方法,抽象方法可以被派生实现,派生具有更加专业的功能。通过类定义前面放置关键字sealed,可以将类声明成密封类,当一个类被声明成密封类的时候,他不能被继承,抽象类不能被声明为sealed。

    using System;
    namespace PolymorphismApplication
    {
       abstract class Shape
       {
          public abstract int area();
       }
       class Rectangle:  Shape
       {
          private int length;
          private int width;
          public Rectangle( int a=0, int b=0)
          {
             length = a;
             width = b;
          }
          public override int area ()
          { 
             Console.WriteLine("Rectangle 类的面积:");
             return (width * length); 
          }
       }
    
       class RectangleTester
       {
          static void Main(string[] args)
          {
             Rectangle r = new Rectangle(10, 7);
             double a = r.area();
             Console.WriteLine("面积: {0}",a);
             Console.ReadKey();
          }
    
    }

  • 相关阅读:
    ThinkDev组件库 开篇
    使用 CodeIgniter 框架快速开发 PHP 应用(六)
    使用 CodeIgniter 框架快速开发 PHP 应用(五)
    jQuery EasyUI 的截图插件(imgAreaSelect)用法
    细说UI线程和Windows消息队列
    ASP.NET MVC2 异常处理机制中令人费解的HTTP 500错误
    从了解到深入——剖析WF4的数据流
    .NET 4.0中数组的新增功能
    成功就是把自己的特长发挥得淋漓尽致(更新)
    WPF4数据绑定应用之“创建具有多种显示效果的字串”
  • 原文地址:https://www.cnblogs.com/xinxianquan/p/9687614.html
Copyright © 2020-2023  润新知