iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0

資料結構之後呢

在昨天大頭跟小光介紹了資料結構的內容,但是有些東西大頭沒有跟小光特別解釋,例如介面物件之類的,還有在例子裏面有CountAdd還有Remove之類的關鍵字都沒有說明,這讓小光整晚不能說在思考那是甚麼東西,所以今天小光會有甚麼收穫呢。

本文同步放置於此

方法 method

「前輩,究竟那個.Add.Count是什麼東西啊,為什麼int沒有但是List有啊?」
一大早小光帶著黑眼圈有氣無力的問著大頭問題,而大頭仍舊低著頭在開發,等到過幾秒之後大頭抬起頭來準備回覆小光時突然被小光的樣子下了一大跳。
「你是怎麼樣啊,考試等放榜還是跟女友約要談判所以整晚緊張到睡不著覺嗎?」
這時小光露出苦笑並且抓抓頭的回答說。
「沒有啦,因為太好奇了所以沒睡好,究竟那是什麼東西啊?」
「哈哈哈,好吧好吧讓我來解除你的疑惑吧,那就是方法跟屬性,接下來我再來說明這個東西吧。」

方法 method

所謂的方法就是把一堆程式整合在一起,詳細的說明請看看msdn 方法,不過簡單講就是讓你可以看到方法的名子就知道裡面在做甚麼的概念,所以又可以依據存取修飾詞來設定哪些是供外部使用的方法,哪些是類別自己使用的方法。所以開發快的工程師在開發一個新的需求時就會先看一下之前有沒有寫過類似的方法,或者可以修改為通用的方法。說了那麼多方法的好處就來看一下要怎麼撰寫一個方法。

using System;
					
public class Program
{
        // 無輸入,無返回的方法
	public static void PrintSomething()
	{
		Console.WriteLine("Something");
	}
	
        // 輸入int的方法
	public static void PrintSomethingParam(int param)
	{
		Console.WriteLine(param);
	}
	
        // 輸入string的方法
	public static void PrintSomethingParam(string param)
	{
		Console.WriteLine(param);
	}
	
        // 返回int的方法
	public static int GetSomething()
	{
		return 10;
	}
	
        // c# 程式進入點
	public static void Main()
	{
		PrintSomething();
		PrintSomethingParam(10);
		PrintSomethingParam("11");
		var param = GetSomething();
		Console.WriteLine(param);
	}
}

一次把方法的宣告及實作的式子跟大家說明,但是還有些方法的特性要待之後介紹物件時再跟大家說明,所以對於方法的介紹就到這邊告一段落。

屬性 property

在介紹property之前讀者們可以先看看msdn 屬性怎麼說,不過沒看也沒關係,簡單說達到OCP The Open/Closed Principle原則要做些手段要將變數給封裝起來,不讓外部任意存取物件的變數以及不讓外部更改取得變數的邏輯而產生的功能,通常會跟存取修飾詞一起說明,不過這個待之後再來說明,所以簡單說就是取的物件的某個變數的手段叫做屬性,而其宣告以及實作的方式如下。

using System;
					
public class Program
{
	public static int Count { get;set; } = 10;
	public static void Main()
	{
		Console.WriteLine(Count);
	}
}

其中Count就是class Program的一個屬性,而它的功用就等於是透過這屬性來存取一個未被宣告的msdn 欄位,更簡單說明就是存取這msdn 欄位的一種方法,所以下面的例子跟上述例子是等價的。

using System;
					
public class Program
{
	private static int _count = 10;
	public static int Count 
	{ 
		get
		{
			return _count;
		}
		set
		{
			_count = value;
		}
	}
	public static void Main()
	{
		Console.WriteLine(Count);
	}
}

存取修飾詞

關於存取修飾詞可以看一下msdn 存取修飾詞的說明,簡單說明就是這個方法、物件、屬性可不可以使用的修飾詞,例如private是只有物件本身可以使用,出了這個物件外面的任何人都不能存取。

後記

「前輩,經過你的解釋終於解決我一整晚的困惑。」
聽完解釋後小光豁然開朗的樣子,不過沒維持多久又陷入沉思的狀況。
「怎麼啦,還有甚麼不明白的呢?」
看到小光的沉思,大頭忍不住這樣子問。
「沒有啦,連續兩天看到物件這個詞,讓我又開始思考這是甚麼東西,之前有沒有講過。」
看到小光這麼認真的思考這事情大頭雖然開心這小子很認真在學習,但是也覺得他的樣子很有趣所以忍不住大笑起來,所以大頭就邊笑著跟小光這麼說。
「你這小子不錯,不過關於甚麼是物件,這個等明天再告訴你了。」
所以讀者們想要了解甚麼是物件的話,敬請期待。


上一篇
D-24 資料結構 data structure ? List ? Dictionary
下一篇
D-22 物件 object ? class ? interface
系列文
30天的asp.net core實習生活-從入門到進階技巧31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言