0%

此前虽然接触过C#中的一些较为高级的操作,但基本是只知其有,不知在哪些场景下可以应用。这几天写着代码就顿觉冗杂不堪,虽然能跑但看起来十分难受,希望寻求一些函数式编程之类的魔法来简化流程。

那首先要理解的还是委托和事件。虽然学完了也不一定会用,但看懂一点总是好的。

委托

定义

如之前所说,委托类似于函数指针。或者说,委托/是/一种/存储/函数引用/的/类型(注意断句)。由于函数的参数须是变量、常量、表达式,只要把函数变成一种引用类型的变量,就可以让一个函数作为其它函数的参数了。同样,也可以通过直接调用委托变量来调用委托变量所引用的函数。

为什么要把类型加粗?因为声明一个委托类型并不是声明一个委托变量,而是一类委托的模板,说明了这类委托应具有的的返回值类型与参数列表。委托类型与具体的委托变量之关系,类似于“类”和“对象”的关系。

委托类型声明和函数类似,拥有返回值类型和参数列表,但没有函数体,并且在前面用delegate关键字声明这是一个委托类型。然后我们再声明这个委托类型的变量:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//声明委托类型和委托变量
delegate double ProcessDelegate(double param1, double param2);
ProcessDelegate process;

//...

//将函数Multiply注册到ProcessDelegate类型的委托变量process
process = new ProcessDelegate(Multiply);

//也可以简写
process = Multiply;

//多播委托(虽然这里没什么用)
process += Divide;
process += Add;

//调用委托
System.Console.WriteLine($"Result:{process(12.1, 22.4)}");

实际上,委托确实是一种“类”。上面所展示的委托变量声明,其形式就和类的实例化完全一致。在委托变量后面打个点,你甚至能看到一堆委托类型包含的方法和属性:

委托也是类

阅读全文 »

890 Errors

用一个小时画了这张图,作为同人社团890 Errors的Logo。现在,我也是社团主催了(

尚未发布作品的社团是不能创建THBWiki页面的,所以其实也说不上已经创立。不过饼总是要提前画的,至少现在已经在GitHub上成立了Organization……

使用的依然是Aseprite,在我有机会认真学习绘画之前大概要有很长一段时间使用它了。

设计的时候,首先想到的就是阴阳玉,把阴阳玉挂在未来要做的社团Logo上是长期以来的夙愿了。

然后受恆萃工坊Logo的影响,也想把某个卦象用进去。看了看六十四卦有哪些之后,又无从挑起了。索性直接卜上一卦,得到的结果就是这个风山渐 ䷴

象曰:
俊鸟幸得出笼中,脱离灾难显威风。
一朝得意福力至,东西南北任意行。

是“稳步发展”的一卦,挺不错的,那就决定是它了(如果不好?那就再Roll一个)。但我岂能期盼什么“福力至”呢?

只用三种颜色未免有些过于单调,于是我把阴阳玉的右半和渐卦的阳爻用“混乱”工具处理了一下,变成了这种好像打上了马赛克的样子——而且这样的六爻不是有点扫描线内味了吗?加上边框和下面的banner之后,阴阳玉又像是陈列在带有“腰封”的盒子里了。(妙啊,妙啊)

社团的名称来源于大家喜闻乐见的“0 Errors, 0 Warnings”,但由于我菜得真实,写出0 Error的东西怕是在梦里,就改成了与博麗谐音的890

0 errors

我发现,自己对于设计实在没有什么储备,喜欢用的元素无非是五行八卦一类的玄学,更别说对红白蓝黑四色的过分偏执,这对我的限制太大了。

很长一段时间里我都没有所谓“偶像”,如今我可以肯定地说ZUN就是我的偶像。在一步一步做着这些的时候,我一方面感叹ZUN的天才,毕竟那是初入大学就全靠自学地开发了《东方灵异传》的人;另一方面痛恨自己的无能,如果我能在有念头的时候就作出行动,一切就不会显得像现在这样晚了。假如现在还是2018年那该多好——这么说着的时候,我应当为之“作出行动”的念头又快要被覆写掉了。

我必须永远与矛盾共生下去。

庚子二月朔日。

在 Windows 记事本的语境中:
所谓的「ANSI」指的是对应当前系统 locale 的遗留(legacy)编码。
梁海的回答 - 知乎

所谓编码

也许你曾试着购买东方Project正作游戏,或别的什么非英语内容:

东方正作

扔进光驱,兴冲冲安装之后,点开附带的omake.txt文档,你会发现和安装时就遇到的一样,大部分成了乱码:

omake原文

奇怪的是,英文、数字、以及一些符号部分并没有变成乱码,这时你就明白,该死的编码问题又出现了。一直到几年前,Windows记事本的默认编码都是写在右下角的ANSI(现在已经是UTF-8),这是什么编码呢?

阅读全文 »

昨天说今天该讲讲ANSI编码,并且不再去微博乱逛了,但早上习惯性地点开翻几页,又感觉那根弦紧了一紧。有一些话想说,但在境内当然是没办法开口的,无论说得多么谨小慎微也避不过全体人民“群防群控”的自我审查。GitHub Pages上这块无人造访的IP就算作是互联网的“法外之地”,让我在这里信口开河,“反动”几下吧。

我早年从知乎结识的网友神宫寺铃香发了这么一段:

路易十六一文不值

这段话出自法国大革命时期吉伦特派的皮埃尔·韦鸠尼昂·韦尼奥之口。这样的言辞是如何得以出现的?当中国的某个掌权者的做法与宪法背道而驰之时,我们能够像这样大胆斥责吗?

显然是不能的。“得道者多助,失道者寡助”,受到这样批判的当然是寡助者——多助者在被这样批判的时候,发出批判的人立刻就会被口水淹没。不幸的是,政治的发展和技术的变革让得道者不一定多助,失道者也不一定寡助了,或者至少将他们多助、寡助的时间点大大延后,使得许多事物可以被扼杀于摇篮。

这些天,肺炎疫情把武汉政府的虚伪面具撕得稀烂,官僚主义、形式主义的败絮化为血的火焰,烧穿包装纸让魔幻的现实在全世界面前光彩夺目。因此,舆论的战斗被推到自习近平同志就任以来所未有的高度,甚至有人表示“上一次有这么多人觉醒,还是1989年”,品葱的反共分子和连登的香港废青们弹冠相庆,似乎民智将开,马上就要十月革命一声炮响,共产党就要被打倒了。

阅读全文 »