公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#中的set和get方法

admin
2021年1月30日 8:40 本文熱度 3520

在面向對象編程(OOP)中,是不允許外界直接對類的成員變量直接訪問的,既然不能訪問,那定義這些成員變量還有什么意義呢?所以C#中就要用set和get方法來訪問私有成員變量,它們相當于外界訪問對象的一個通道,一個“接口”。先來看一段代碼:

class Employee
  {
        private string name;
        private byte age;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        public byte Age
        {
            get { return age; }
            set { age = value; }
        }
  }

  代碼中定義了兩個私有變量name和age,當我們不想讓外界隨意訪問該私有變量時,可以使用屬性來訪問,語法為:

public <返回類型(要與被訪問變量的類型相同)> <屬性名(不能與被訪問變量同名)>
  {
        get{ return <被訪問變量>;}
        set{ <被訪問變量> = value;}
  }

  當我們使用屬性來訪問私有成員變量時就會調用里面的get方法,當我們要修改該變量時就會調用set方法,當然在定義的時候可以只定義一個get方法或只定義一個set方法。如果只定義get方法,那么這個相應變量就是“只讀”的;如果只定義set方法,那么相應變量就是“只寫”的。

  既然外界可以通過set和get訪問類內私有成員,那為什么不直接把它定義成共有,直接供外界訪問呢?拿上面的Employee類來說明:

class Employee
    {
        private string name;
        private byte age;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        //****修改后****↓↓↓↓↓↓↓↓
        public byte Age
        {
            get { return age; }  
            set
            {                
                if (value > 10 && value<=100)   //一般在公司雇員的年齡都在10到100歲之間
                age = value;   
            }
        }
        //****修改后****↑↑↑↑↑↑↑↑
    }

上例中,set就像一位門衛大叔一樣,只有好人才能進來。可以通過屬性來控制對員變量的讀寫,防止對成員變量的非法賦值等。

再舉個小例子,以下是個溫度計的類:

class Thermometer
    {
        private double temperature;
        public Thermometer(double temperature)  //構造函數
        {
            this.temperature = temperature;
        }
        public double Temperature
        {
            get { return temperature; }
            set { temperature = value; }
        }
    }

假設這里的溫度單位表示的是攝氏度(℃),如果在需求分析階段誤解了客戶的原始意愿或者客戶在日后變更了需求,需要把系統中所有表示溫度的變量temperature都用來表示開爾文溫度(K)。那么不必動系統中成百上千個Temperature屬性,只需在get和set函數中稍微修改一下代碼即可:

class Thermometer
    {
        private double temperature;
        public Thermometer(double temperature)  //構造函數
        {
            this.temperature = temperature;
        }
        public double Temperature
        {
            //****修改后****↓↓↓↓↓↓↓↓
            get { return temperature-273.15; }
            set { temperature = value+273.15; }
            //****修改后****↑↑↑↑↑↑↑↑
        }
    }

建一個控制臺應用程序來測試一下,主函數為:

class Test
    {
        static void Main(string[] args)
        {
            Thermometer a = new Thermometer(40);
            Console.WriteLine(a.Temperature);
        }
    }

上面代碼中用構造函數給溫度設的初值為40度,代碼修改前運行結果為“40”,代碼修改后運行結果為“-233.15”。


該文章在 2021/1/30 8:40:21 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产精品三级女人国产香蕉 | 2025中文字幕日韩色视频 | 国产在线手机视频时看 | 国产a视频的魅力与发展现状 | 精品无码国产一区二区日本 | 2025最新无码国产在线观看 | 国产在线播放线99视频大全 | 精品人妻少妇一区二区a | 国产亚洲精品看片在线观看 | av毛片高清在线观看 | 国产精品视频国产永久视频 | 国产高清精品一区在线 | 高清中文无码久久 | 精品丰满熟女一区二区三区 | 国产精品熟女四五十路一区二区 | 国产精品亚洲久久久久 | 国产精品免费久久 | 国产在线观看91精品2025 | 国产aⅴ夜夜欢一区二区三区 | 国产精品无码久久久久 | 国产尤物精品视频 | 国产视频一区欧美二区日本三区动 | 国产成人午夜无码电影在线观看 | 国产精品午夜福利影院在线观看 | 国产人妻人伦精品午夜剧场 | 国产aⅴ一区二区 | 国产欧美日韩亚洲一区二区 | 国产精品无码免费播放在线观看 | 国产国产精品女人高潮毛片 | 成人免费在线观看视频 | 国产日韩久久久久精品 | 精品亚洲国产成av人片不卡无码 | 国产高清无码黄片亚洲大尺度视频 | 成人无码视频在线观看网址 | 国产精品自拍第一页 | 69福利视频一区二区 | 91久久精品一区二区www | 二区久久人人澡 | 精品国产线拍大陆久久尤物 | 国产欧美日韩亚洲另类 | 国产精品日韩欧美亚洲另类 |