C#拓展方法相关的一些问题

C#的拓展方法线程安全吗,我看是static,还是说得看情况?
拓展方法能给一个类加索引器吗this[],如果可以,要怎么加

当然是看情况的,比如你写个FileInfo的扩展方法去修改文件内容
那么很明显,对同一个FileInfo对象来说,他是有并发的
get
第2个问题,官方暂时没有实现,
索引用的是属性 get;set;实现,官方展示没有对属性进行扩展属性的支持,虽然扩展属性从2015年已经有很多人提出,但是官方一直没有进行支持

当然你要自己用fody 在编译期进行IL wave织入也是可以做到,只是没大多必要

另外:C#8开始索引已经变强

我们可以有python类似索引器了,大体上也够用

拓展方法和多线程关系不大,staic方法又不会造成资源竞争,static属性和属性集才会

拓展方法是全局生效的,你不用static用啥?拓展方法本身就需要在参数里加this,你如果想要安全,就不要在拓展方法里做不安全的事情就行了

拓展方法是Linq 提供的,是针对载体 集合 而不是乘客 类 的