D-23 方法 method ? property

资料结构之後呢

在昨天大头跟小光介绍了资料结构的内容,但是有些东西大头没有跟小光特别解释,例如介面物件之类的,还有在例子里面有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是只有物件本身可以使用,出了这个物件外面的任何人都不能存取。

後记

「前辈,经过你的解释终於解决我一整晚的困惑。」
听完解释後小光豁然开朗的样子,不过没维持多久又陷入沉思的状况。
「怎麽啦,还有甚麽不明白的呢?」
看到小光的沉思,大头忍不住这样子问。
「没有啦,连续两天看到物件这个词,让我又开始思考这是甚麽东西,之前有没有讲过。」
看到小光这麽认真的思考这事情大头虽然开心这小子很认真在学习,但是也觉得他的样子很有趣所以忍不住大笑起来,所以大头就边笑着跟小光这麽说。
「你这小子不错,不过关於甚麽是物件,这个等明天再告诉你了。」
所以读者们想要了解甚麽是物件的话,敬请期待。


<<:  Day 7 拖动上传图片辨识数字

>>:  Day06 - 【入门篇】Keycloak的替代品

鬼故事 - 灭证高手

鬼故事 - 灭证高手 Credit: Scooby-Doo 灵感来源:UCCU Hacker 故事开...

Angular视觉化套件(Day19)

当我们初步了解Angular的框架後,接着我要介绍一套视觉化套件-ZingChart ZingCha...

[Day 32] 自我介绍後台及前台(一) - 取得使用者资料

自我介绍後台及前台 自定义性别 我们现在要开始做自我介绍的後台部分, 在这里我们要先建一个Enum,...

计算机概论 - 程序语言 Programming Languages

如果程序都必须以机械语言撰写,那麽现在复杂的程序系统发展,如作业系统、网路软件和市面上各种应用软件都...

菜鸟日记Day 30-用JSON-Server自建云端资料库

铁人赛终於来到最後一天了! 为响应JavaScript菜鸟研究室的主题,最近一个月我们尝试串接过各种...