C#中屬性的定義及用法
屬性是可以提供被靈活的讀取與呼叫,屬性的存在形式有兩種:一種是在基類庫中定義的,還有一種是自定義的。定義一個屬性需要名字和型別,例如下文中的string就是型別,MYPRO就是名稱,屬性包含兩部分內容,一個是get,一個是set,當我們想要取得屬性的值的時候,我們就可以呼叫get塊,其返回值型別就是屬性上面定義的型別,當我們想要在屬性中設定值時,就需要呼叫set塊中的value來進行訪問設定。
例如自定義一個屬性,他的一般格式如下:
private string a;
public string MYPRO
{
get
{ return a; }
set
{ a = value; }
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
我們需要明白,有了get和set我們就可以對該資料進行讀取和修改,程式設計規範中,我們一般把類中的資料變數定義為private,減少程式出錯的概率,這時其他類就不能定義了,這時我們可以用屬性來進行訪問:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace STRUC
{
class Program
{
static void Main(string[] args)
{
GouZAO GOU = new GouZAO();
GOU.NAME = 200;
<span class="token keyword">int</span> tem <span class="token operator">=</span> GOU<span class="token punctuation">.</span>NAME<span class="token punctuation">;</span>
Console<span class="token punctuation">.</span><span class="token function">WriteLine</span><span class="token punctuation">(</span><span class="token string">"讀取的值是:"</span><span class="token operator">+</span>tem<span class="token punctuation">)</span><span class="token punctuation">;</span>
Console<span class="token punctuation">.</span><span class="token function">Read</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
class GouZAO
<span class="token punctuation">{<!-- --></span>
private <span class="token keyword">int</span> d<span class="token punctuation">;</span>
public <span class="token keyword">int</span> NAME
<span class="token punctuation">{<!-- --></span>
get
<span class="token punctuation">{<!-- --></span> Console<span class="token punctuation">.</span><span class="token function">WriteLine</span><span class="token punctuation">(</span><span class="token string">"取值方法被讀取"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> <span class="token number">100</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
set
<span class="token punctuation">{<!-- --></span>
d <span class="token operator">=</span> value<span class="token punctuation">;</span>
Console<span class="token punctuation">.</span><span class="token function">WriteLine</span><span class="token punctuation">(</span><span class="token string">"開始賦值:"</span> <span class="token operator">+</span> d<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
結果是:
這裡可以看到用到了幾個修飾詞:private和public,這裡就簡單談一下幾種常見的修飾符的意思以及他們的可用範圍;
private:隱私,也就是自己的,作為該類所私有的,只能在宣告類中使用;
public:公共的就是公開的,不限制訪問許可權,其他類都可以呼叫;
protected:保護的,只能在其所在類和其子類(繼承等關係)才能呼叫;
internal:內部的,只有其所在類才能訪問,外部類無法訪問;
這段程式就是定義了一個屬性,他的資料型別是string,也就是字元型別。用get和set來確定定義的屬性,還有一種通俗的寫法是:public string NAME { get; set; }
,這個也是定義,也是string型別。例如程式:
namespace shuxing
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("請輸入你的姓名:");
//string name;
string name = Console.ReadLine();
Console.WriteLine("你的屬性是:");
Shuxing shu = new Shuxing();
shu.c = "10000";
Console.WriteLine("你的攻擊力是:"+shu.c);
shu.c = "10000";
Console.WriteLine("你的血量是:"+shu.c);
Zhaoshi zhao = new Zhaoshi();
zhao.NAME = "降龍十八掌";
Console.WriteLine("你的絕招有:"+zhao.NAME);
zhao.NAME = "鐵布衫";
Console.WriteLine("皮厚的原因是你有:"+zhao.NAME);
Console.ReadLine();
}
}
class Shuxing
{ private string a;
public string c
{
get
{ return a; }
set
{ a = value; }
}
}
class Zhaoshi
{
public string NAME { get; set; }
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
如程式中就是寫了這兩種屬性的定義,下面定義了一個招式的類,這個返回的值就是字元型的資料,當在main函式中呼叫的時候,在初始化之後,可以看到shu.c = "10000";以及zhao.NAME = "降龍十八掌";
這些就可以直接定義所需要顯示的屬性,可以很清楚的瞭解該類的屬性。
這是顯示結果:
</article>