c#类的使用示例

 更新时间:2014年04月28日 11:28:22   作者:  
这篇文章主要介绍了c#类的使用示例,还有我学习时的笔记,需要的朋友可以参考下

Notes:

数据private类型,大部分方法public类型;

如果有继承或者相互引用,注意数据的公有还是私有,保证数据的只读性质;

C#不能够像C++一样在数据声明时调用构造函数,必须使用Myclass temp = new Myclass()来调用构造函数;

C#不支持多重继承关系, 也就是说,一个派生类不允许有多个基类。简单点就是,父亲可能有好多儿子(父类可以派生出许多子类),但是一个孩子只能有一个爸爸(子类不允许多重继承关系);

C#和其他面向对象一样,重载,多态,虚函数,抽象类这些特性都有;

重载和C++中的重载毫无区别,只有一个问题是在重载大小比较运算符(<, >=, >, <=, ==, !=)的时候,必须成对的重载;

虚函数需加virtual声明,派生类中需要重写,并且添加override声明;

抽象函数需加abstract声明,并且基类中没有执行代码,只能在继承类中添加;

如果需要传出多个值,需要用到ref声明或out声明;

ref声明的对象必须提前初始化;

out声明的对象不需要提前初始化;

如果类中有静态对象,可以使用静态构造函数对静态对象进行赋值操作。

Example:
ElemType.cs

复制代码 代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test_Class
{
    class ElementType
    {
        private int value;
        public ElementType() { value = 0; }
        public ElementType(int _v)
        {
            this.value = _v;
        }
        public void disp()
        {
            Console.WriteLine("value is {0}", value);
        }
        public void edit(int _v)
        {
            this.value = _v;
        }
        public int reff()
        {
            return this.value;
        }
    }
    class package
    {
        private ElementType x;
        private ElementType y;
        public package()
        {
            this.x = new ElementType();
            this.y = new ElementType();
        }
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="_x">x</param>
        /// <param name="_y">y</param>
        public package(int _x, int _y)
        {
            this.x = new ElementType(_x);
            this.y = new ElementType(_y);
        }
        public void disp()
        {
            Console.WriteLine("package display");
            Console.WriteLine("\tx vaule is {0}", this.x.reff());
            Console.WriteLine("\ty vaule is {0}", this.y.reff());
            Console.WriteLine();
        }
        /// <summary>
        /// 修改值
        /// </summary>
        /// <param name="_x">x</param>
        /// <param name="_y">y</param>
        public void modify(int _x, int _y)
        {
            this.x.edit(_x);
            this.y.edit(_y);
        }
        public void copyto(ref package p)
        {
            p.modify(this.x.reff(), this.y.reff());
        }
    }
}

Program.cs

复制代码 代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test_Class
{
    class Program
    {
        static void Main(string[] args)
        {
            package p1 = new package(5, 5);
            package p0 = new package();
            p0.disp();
            p1.disp();
            p1.copyto(ref p0);
            p0.disp();
            p0.modify(10, 50);
            p0.disp();
            Console.ReadLine();
        }
    }
}

相关文章

  • 通过C#实现自动售货机接口

    通过C#实现自动售货机接口

    这篇文章主要介绍了通过C#实现自动售货机接口,需要的朋友可以参考下
    2015-07-07
  • C#中DataGridView动态添加行及添加列的方法

    C#中DataGridView动态添加行及添加列的方法

    这篇文章主要介绍了C#中DataGridView动态添加行及添加列的方法,涉及C#中DataGridView针对行与列动态操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • WinForm调用百度地图接口用法示例

    WinForm调用百度地图接口用法示例

    这篇文章主要介绍了WinForm调用百度地图接口用法,结合具体实例形式简单分析了WinForm WebBrower控件与前端百度接口交互的相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • c#关于JWT跨域身份验证的实现代码

    c#关于JWT跨域身份验证的实现代码

    这篇文章主要介绍了c#关于JWT跨域身份验证的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • 同时兼容JS和C#的RSA加密解密算法详解(对web提交的数据加密传输)

    同时兼容JS和C#的RSA加密解密算法详解(对web提交的数据加密传输)

    这篇文章主要给大家介绍了关于同时兼容JS和C#的RSA加密解密算法,通过该算法可以对web提交的数据进行加密传输,文中通过图文及示例代码介绍的非常详细,需要的朋友们可以参考借鉴,下面来一起看看吧。
    2017-07-07
  • C#窗体编程(windows forms)禁止窗口最大化的方法

    C#窗体编程(windows forms)禁止窗口最大化的方法

    这篇文章主要介绍了C#窗体编程(windows forms)禁止窗口最大化的方法,以及避免弹出系统菜单和禁止窗口拖拽的方法,需要的朋友可以参考下
    2014-08-08
  • C# 实现Scoket心跳机制的方法

    C# 实现Scoket心跳机制的方法

    这篇文章主要介绍了C# 实现Scoket心跳机制的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • c#模拟银行atm机示例分享

    c#模拟银行atm机示例分享

    这篇文章主要介绍了c#模拟银行atm机示例,实现了用户登录、用户存款、用户取款等功能,需要的朋友可以参考下
    2014-03-03
  • C#调用Oracle存储过程方法介绍(附源码)

    C#调用Oracle存储过程方法介绍(附源码)

    这篇文章介绍了C#调用Oracle存储过程的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • c# 类成员的可访问性代码详解

    c# 类成员的可访问性代码详解

    在本篇文章里小编给大家整理了关于c# 类成员的可访问性代码详解内容,有需要的朋友们可以参考下。
    2019-09-09

最新评论