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

首頁 > 編程 > C# > 正文

C#中的屬性

2023-05-02 19:48:25
字體:
來源:轉載
供稿:網友

類在設計時,其字段成員一般被聲明為私有的,如果想讀取或設置其值,需要提供這樣的方法,而在C#中,使用屬性更充分體現了對象的封裝性,讓用戶不直接操作類的相關數據,而是通過其提供的訪問器進行訪問。

屬性可以是類、結構和接口的成員。其定義的形式為:

訪問修飾符 數據類型 標識符
{
訪問器聲明;
}

訪問修飾符可以是new,static,virtual,absctract,override和public,protected,private,internal的合法組合。

訪問器有get訪問器和set訪問器兩種,其聲明的格式如下:

get
{
return 要訪問的成員;
}

set
{
要設置值的成員 = value;
}

在使用get訪問器時要注意,其使用return要返回的值必須與屬性聲明的數據類型相同,或能夠隱式地轉換為屬性聲明的數據類型。

set訪問器的值是通過隱含的參數value帶進來的,其主據類型也必須與屬性聲明的數據類型相同或能夠進行隱式轉換。

在屬性定義中,get訪問器和set訪問器的規則如下:

(1)同時具有get訪問器和set訪問器的屬性,其值是可以讀取也可以進行修改的;

(2)只有get訪問器的屬性是只讀屬性,即這樣的屬性值僅允許讀取,而不能進行修改;

(3)只有set訪問器的屬性為只寫屬性,即該屬性的值僅能修改,而不能讀取。

下面舉一個例子,分別說明以上三種情況:

using System;

 

class Weather

{

  private float t; //溫度

  private int w; //風級

  private string sun; //天氣情況

  /// <summary>

  /// 溫度屬性

  /// </summary>

  public float Temperature

  {

   get

   {

     return t;

   }

   set

   {

     if(value!=t)

       t = value;

   }

 }

  /// <summary>

  /// 描述風的等級的屬性

  /// </summary>

  public int Windy

  {

    set

    {

      w = value;

    }

  }

  /// <summary>

  /// 描述天氣情況的屬性

  /// </summary>

  public string Sun

  {

    get

    {

      return sun;

   }

  }

  /// <summary>

  /// 構造器

  /// </summary>

  public Weather()

  {

    this.sun = "天氣晴朗";

  }

  /// <summary>

  /// 帶參數的構造器

  /// </summary>

  /// <param name="s">描述天氣情況的字符串</param>

  public Weather(string s)

  {

    this.sun = s;

  }

  /// <summary>

  /// 輸出天氣信息的方法

  /// </summary>

  public void PrintInfo()

  {

     Console.WriteLine("今天:{0},風級:{1},氣溫:{2}",sun,w,t);

   }

 }

 //定義主類進行測試

 class Test

{

  static void Main()

  {

    Weather wt = new Weather();

    // wt.Sun = "天氣晴朗";//此語句將引起錯誤1

    wt.Temperature = 23.4f;

    wt.Windy = 4;

    Console.WriteLine("氣溫:{0}",wt.Temperature); //輸出溫度信息,即可修改亦可讀取

   // Console.WriteLine("風級:{0}",wt.Windy ); //雖然可以修改,但不可讀取,否則引起錯誤2

   Console.WriteLine("天氣:{0}",wt.Sun); //雖然不能修改,但可以讀

   wt.PrintInfo(); //使用類提供的方法,可以輸出(讀?。┤康男畔?/span>

  }

}

錯誤1:無法對屬性或索引器“Weather.Sun”賦值 -- 它是只讀的

錯誤2:屬性或索引器“Weather.Windy”無法用于此上下文中,因為它缺少 get 訪問器

運行結果如下:

C#中屬性的使用方法

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 当阳市| 濉溪县| 阳信县| 益阳市| 固镇县| 全州县| 普兰店市| 东阳市| 隆安县| 迁西县| 梅州市| 离岛区| 永嘉县| 黎平县| 北川| 莫力| 屯门区| 定边县| 广宁县| 克山县| 肃宁县| 大关县| 东平县| 怀柔区| 奇台县| 瓮安县| 遂宁市| 榆中县| 北川| 大理市| 延长县| 威宁| 宜兰市| 讷河市| 托克逊县| 嫩江县| 平和县| 修文县| 锡林郭勒盟| 沅江市| 宾阳县|