<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[H_y_m__的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/H_y_m__</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; H_y_m__]]></copyright><item><title><![CDATA[C#中的ValueTask和Task]]></title><link>https://blog.youkuaiyun.com/H_y_m__/article/details/136993596</link><guid>https://blog.youkuaiyun.com/H_y_m__/article/details/136993596</guid><author>H_y_m__</author><pubDate>Sun, 24 Mar 2024 22:13:58 +0800</pubDate><description><![CDATA[这里只是简单讲了ValueTask的使用方法，错误用法，更深层的原因得看IL源码了，这个暂时搁置，只知道它不能多次await、不能并发await就够用了。.GetAwaiter().GetResult()这个部分就暂时别管。]]></description><category></category></item><item><title><![CDATA[C# in Depth，4th Edition的第九章读后总结]]></title><link>https://blog.youkuaiyun.com/H_y_m__/article/details/136598416</link><guid>https://blog.youkuaiyun.com/H_y_m__/article/details/136598416</guid><author>H_y_m__</author><pubDate>Sun, 10 Mar 2024 12:14:10 +0800</pubDate><description><![CDATA[看书的时候将示例代码抄下来，在代码中写好注释，这比在blog中啰里吧嗦写一大堆中文要直接的多。]]></description><category></category></item><item><title><![CDATA[C#中的async/await]]></title><link>https://blog.youkuaiyun.com/H_y_m__/article/details/136472056</link><guid>https://blog.youkuaiyun.com/H_y_m__/article/details/136472056</guid><author>H_y_m__</author><pubDate>Thu, 07 Mar 2024 00:06:00 +0800</pubDate><description><![CDATA[细节问题要多多注意！]]></description><category></category></item><item><title><![CDATA[class、struct、record的区别]]></title><link>https://blog.youkuaiyun.com/H_y_m__/article/details/136396346</link><guid>https://blog.youkuaiyun.com/H_y_m__/article/details/136396346</guid><author>H_y_m__</author><pubDate>Fri, 01 Mar 2024 16:33:07 +0800</pubDate><description><![CDATA[绕来绕去，感觉record只是个引用传递的值类型而已，再有就是位置记录——一个简化构造函数之类的语法糖。像这种东西是从最基本的值类型和引用类型衍生出来的产物，没啥营养，知道怎么用就可以了，一般也不会用… …]]></description><category></category></item><item><title><![CDATA[C# in Depth，4th Edition的第二章读后总结]]></title><link>https://blog.youkuaiyun.com/H_y_m__/article/details/136333030</link><guid>https://blog.youkuaiyun.com/H_y_m__/article/details/136333030</guid><author>H_y_m__</author><pubDate>Wed, 28 Feb 2024 23:29:30 +0800</pubDate><description><![CDATA[Test的参数是一个Animal类型的对象，然而当你传Animal子类Cat类型的对象时也是可以的。拿HashTable和Dictionary<TKey,TValue>来举例，你知道字典内部就是经典哈希，和哈希表的实现方法是一样的，区别就在于HashTable里的键值对都是object类型，也就是说可以是任何类型，而Dictionary<TKey,TValue>已经确定了键值对的类型。finally块的重点在于，当迭代完迭代器或者中途放弃迭代后，如果不使用迭代器的Dispose方法，就会内存泄漏。]]></description><category></category></item><item><title><![CDATA[.gitignore忽略跟踪指定文件]]></title><link>https://blog.youkuaiyun.com/H_y_m__/article/details/135776909</link><guid>https://blog.youkuaiyun.com/H_y_m__/article/details/135776909</guid><author>H_y_m__</author><pubDate>Tue, 23 Jan 2024 17:50:40 +0800</pubDate><description><![CDATA[不过呢我也是发现，使用VS的友好界面会让人远离本质，比如说VS里有这样的功能：你点击之后就会储存这些更改，后续你pull还是push都和这个无关了。当你弹出的时候，又可以将这些更改和更新后的仓库merge一下。这里的Apply就是应用，Pop就是弹出；其实执行的命令就是git stash apply，git stash pop。最好还是用命令行，这样更接近本质，而且也不至于换一个IDE就不会用了。IDE为我们做的事情太多，比如说VS在运行的时候有一个启动按钮，点击就build and run了。]]></description><category></category></item><item><title><![CDATA[云服务器部署个人节点]]></title><link>https://blog.youkuaiyun.com/H_y_m__/article/details/135668315</link><guid>https://blog.youkuaiyun.com/H_y_m__/article/details/135668315</guid><author>H_y_m__</author><pubDate>Thu, 18 Jan 2024 16:05:34 +0800</pubDate><description><![CDATA[以上就是踩的两个坑了。配端口的时候还复习了一下计算机网络的知识，感觉【安全组】还是比较有意思的。后面想开发下openai的官方api key，朋友们，下次再见吧！]]></description><category></category></item></channel></rss>