国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

c#類的使用示例

2020-01-24 02:41:23
字體:
來源:轉載
供稿:網友

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();
        }
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 家居| 会泽县| 波密县| 略阳县| 太康县| 江西省| 南木林县| 昆山市| 辽阳县| 会昌县| 静宁县| 彰化县| 新晃| 岑巩县| 涟源市| 湖口县| 灵寿县| 墨玉县| 子长县| 胶南市| 惠来县| 维西| 乐陵市| 轮台县| 古田县| 井冈山市| 平远县| 曲水县| 外汇| 安塞县| 贵港市| 雅安市| 巴彦县| 卓资县| 喀喇沁旗| 宜昌市| 乐山市| 青铜峡市| 兰溪市| 无锡市| 分宜县|