好,不过
mirai的README.md中要求不得擅自使用其形象图:
mirai 的形象图及项目图标都拥有著作权保护。
在未经过允许的情况下,任何人都不可以使用形象图和图标,或本文初的有关 mirai 名称来历的介绍原文,用于商业用途或是放置在项目首页,或其他未许可的行为。
好,不过
mirai的README.md中要求不得擅自使用其形象图:
mirai 的形象图及项目图标都拥有著作权保护。
在未经过允许的情况下,任何人都不可以使用形象图和图标,或本文初的有关 mirai 名称来历的介绍原文,用于商业用途或是放置在项目首页,或其他未许可的行为。
10块钱能买5瓶,然后开始喝
此时产生5个瓶身,5个瓶盖;
进行一次兑换操作,拿到2+1=3瓶新的矿泉水,然后继续吨吨吨
此时还剩4个(5-4+3)瓶身,4个(5-4+3)瓶盖;
再进行一次兑换操作,拿到2+1=3瓶新的矿泉水,接着吹完它们
此时还剩3个(4-4+3)瓶身,3个(4-4+3)瓶盖
继续兑换,拿到1瓶矿泉水,干掉它
此时还剩2个(3-2+1)瓶身,4个瓶盖(3+1)
再兑换一次,拿到1+1=2瓶矿泉水,喝完它
剩2个瓶身(2-2+2),2个瓶盖
用2个瓶身换完最后一瓶,倒掉它
最后剩1个瓶身和3个瓶盖
一共喝(+倒)掉了5+3+3+1+2+1=15瓶矿泉水
我人算晕了
今年一整年都是,鸽了,鸽置,重构
还得在这剩下的一个月内拿到驾照
我也是一样的给自己挖了一些坑,有时间一定填
有个typo: OnFriendMessageRecieve
→ OnFriendMessageReceive
然后我还是那句话, 能不开状态机那就不开状态机, 以下代码能达到预期 + 不改变方法签名 + 减少内存开销 + 提升性能
public Task<bool> ConnectAsync()
{
if (string.IsNullOrEmpty(url))
{
throw new("No Url was specified.");
}
return ws.OpenAsync();
}