首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏stcnb

    CA2009:请勿对 ImmutableCollection 值调用 ToImmutableCollection

    <int> immutableArray) { // This is fine. M2(immutableArray.ToImmutableArray()); } private void M2(ImmutableArray<int> immutableArray) <int> immutableArray) { // This is fine. M2(immutableArray); } private void M2(ImmutableArray<int> immutableArray) { Console.WriteLine (immutableArray.Length); } } 提示 Visual Studio 中为此规则提供了代码修补程序。

    55330编辑于 2022-02-26
  • 来自专栏张善友的专栏

    .NET不可变集合已经正式发布

    微软基础类库(Base Class Library)团队已经完成了.NET不可变集合的正式版本,但不包括ImmutableArray。与其一起发布的还包括针对其它不可变对象类型的设计指南。 ,ImmutableArray从最终的发布版本中被移除。 其原因是:为了满足内存性能指标,ImmutableArray必须设计成一个值对象,并且为了保持值对象的语义,ImmutableArray的默认实例必须表现为一个空数组形式。 ,它会将该值类型初始化为它的默认状态,而ImmutableArray<T>的默认值是空,它的底层数组实现则为null。 基础类库团队并未放弃这个项目,他们还在研究其它设计方式,以争取让ImmutableArray重新亮相。

    1.1K100发布于 2018-01-29
  • 来自专栏码匠的流水账

    聊聊RespCommand

    java/com/github/tonivade/resp/command/Request.java public interface Request { String getCommand(); ImmutableArray public class DefaultRequest implements Request { private final SafeString command; private final ImmutableArray ServerContext server; public DefaultRequest(ServerContext server, Session session, SafeString command, ImmutableArray @Override public String getCommand() { return command.toString(); } @Override public ImmutableArray

    36530发布于 2020-08-21
  • 来自专栏DotNet NB && CloudNative

    .NET Roslyn快速上手指南

    ; int count = 0; var array = ImmutableArray.Create(1,2,3); var array2 = array.Add(4); var array3 = ImmutableArray 分析我们我们选中的ImmutableArray.Empty.Add(1)这一行。 通过分析我们会发现,表达式树解析是从右往左解析的,举例:Add(1)—>Empty—>ImmutableArray—>ImmutableArray 所以我们要锁定这一行的代码的话,首先我们会判断它有一个 = 1) return; // 判断是否是ImmutableArray if (ImmutableArrayAccess.Identifier.Text ! = "ImmutableArray") return; 然后我贴上完整的CreationAnalyzer代码。

    89210编辑于 2024-12-20
  • 来自专栏码匠的流水账

    聊聊RespCommand

    java/com/github/tonivade/resp/command/Request.java public interface Request { String getCommand(); ImmutableArray public class DefaultRequest implements Request { ​ private final SafeString command; ​ private final ImmutableArray ServerContext server; ​ public DefaultRequest(ServerContext server, Session session, SafeString command, ImmutableArray @Override public String getCommand() { return command.toString(); } ​ @Override public ImmutableArray

    40510发布于 2020-08-15
  • 来自专栏walterlv - 吕毅的博客

    使用 Roslyn 分析代码注释,给 TODO 类型的注释添加负责人、截止日期和 issue 链接跟踪

    ; public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics => ImmutableArray.Create DiagnosticSeverity.Error, isEnabledByDefault: true, description: Description); public override ImmutableArray <DiagnosticDescriptor> SupportedDiagnostics => ImmutableArray.Create(Rule); public override , RegexOptions.Compiled); public sealed override ImmutableArray<string> FixableDiagnosticIds => ImmutableArray.Create(DiagnosticIds.TodoMustBeTracked); public sealed override

    79720编辑于 2023-10-23
  • 来自专栏walterlv - 吕毅的博客

    基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器 Analyzer 和修改器 CodeFixProvider

    , DiagnosticSeverity.Warning, isEnabledByDefault: true, description: Description); public override ImmutableArray <DiagnosticDescriptor> SupportedDiagnostics => ImmutableArray.Create(Rule); 重写 Initialize 的部分,模板中注册了一个类名分析器 <string> FixableDiagnosticIds => ImmutableArray.Create(WalterlvDemoAnalyzersAnalyzer.DiagnosticId <DiagnosticDescriptor> SupportedDiagnostics => ImmutableArray.Create(_rule); public override void <string> FixableDiagnosticIds => ImmutableArray.Create(WalterlvDemoAnalyzersAnalyzer.DiagnosticId

    1.9K30编辑于 2023-10-23
  • 来自专栏林德熙的博客

    dotnet 源代码生成器分析器入门

    核心不同在于 string 和 ImmutableArray<string> 不可变数组的差异而已。在整个 Roslyn 设计里面,大量采用不可变思想,这里的返回值就是不可变思想的一个体现。 这里的 IncrementalValueProvider<ImmutableArray<T>> 单值提供器,其提供的是一个集合,即一个值,所以称为单值提供器。 ImmutableArray<ItemGeneratedCodeResult>.Empty; 以上代码将 ` List` 转换为不可变的数组进行返回,如此可以更好的符合分析器的设计。 调用 Collect 之后,就转换成了 ImmutableArray<ImmutableArray<ItemGeneratedCodeResult>> 类型,套了两层数组。 这时候采用 Linq 来写就非常简单,代码如下 itemGeneratedCodeResultProvider .Collect() .SelectMany((ImmutableArray<ImmutableArray

    56310编辑于 2025-06-17
  • 来自专栏码匠的流水账

    聊聊claudb的SlaveReplication

    return new DefaultRequest(server, session, commandToken.getValue(), arrayToList(array)); } ​ private ImmutableArray <SafeString>builder() .onString(StringRedisToken::getValue).build(); return ImmutableArray.from

    24910发布于 2020-08-22
  • 来自专栏码匠的流水账

    聊聊claudb的SlaveReplication

    return new DefaultRequest(server, session, commandToken.getValue(), arrayToList(array)); } private ImmutableArray <SafeString>builder() .onString(StringRedisToken::getValue).build(); return ImmutableArray.from

    34740发布于 2020-08-28
  • 来自专栏DotNet NB && CloudNative

    .NET 源生成器 (SG) 实现自动注入生成器

    (syntaxContext, _) => syntaxContext.TargetNode).Collect(); IncrementalValueProvider<(Compilation, ImmutableArray (syntaxContext, _) => syntaxContext.TargetNode).Collect(); IncrementalValueProvider<(Compilation, ImmutableArray metadata private static List<AutoInjectDefine> GetGenericAnnotatedNodesInject(Compilation compilation, ImmutableArray Attribute的metadata集合 private static List<AutoInjectDefine> GetAnnotatedNodesInject(Compilation compilation, ImmutableArray

    83310编辑于 2024-05-28
  • 来自专栏函数式编程语言及工具

    Scalaz(28)- ST Monad :FP方式适用变量

    . */ def freeze: ST[S, ImmutableArray[A]] = st(s => (s, ImmutableArray.fromArray(value))) /**Fill arr.freeze 23 } yield r //> e3: [S]=> scalaz.effect.ST[S,scalaz.ImmutableArray

    74180发布于 2018-01-05
  • 来自专栏DotNet NB && CloudNative

    C#13和 .NET9高级功能解析:.NET高手必备技能

    示例:多线程中的不可变数组操作 通过优化后的不可变数组,降低多线程程序中的争用: using System.Collections.Immutable; var numbers = ImmutableArray.CreateRange .ToImmutableArray(); // 输出前十个平方数 Console.WriteLine(string.Join(", ", squares.Take(10))); 效果: 优化后的 ImmutableArray

    72410编辑于 2024-12-31
  • 来自专栏stcnb

    CA1829:使用 Length/Count 属性,而不是 Enumerable.Count 方法

    此规则标记具有 Length 属性的以下集合类型上的 Count 调用: System.Array System.Collections.Immutable.ImmutableArray<T> 此规则标记具有

    80200编辑于 2022-02-19
  • 来自专栏jQuery每日经典

    JavaScript 中的 不变性(Immutability)

    想象一下“ImmutableArray”类型。 灵感来自字符串和数字行为,它将具有以下行为: var arr = new ImmutableArray([1, 2, 3, 4]); var v2 = arr.push(5);arr.toArray()

    1.4K20编辑于 2022-01-20
  • 来自专栏张善友的专栏

    Immutable(不可变)集合

    微软.NET团队已经正式发布了不可变集合,可以通过Nuget添加,包括了下面的不可变集合: System.Collections.Immutable.ImmutableArray System.Collections.Immutable.ImmutableArray

    1.1K60发布于 2018-01-19
  • 来自专栏InCerry

    .NET周刊【8月第1期 2023-08-06】

    【英文】C# 中的 ImmutableArray<T> 迭代性能 https://antao-almada.medium.com/immutablearray-t-iteration-performance-in-c -99e490d4d352 ImmutableArray<T> 上枚举操作的性能。

    2.6K10编辑于 2023-08-31
  • 来自专栏IMWeb前端团队

    JS中的非可变性

    要想使数组满足非可变性,需要使用自定义的类似的数据结构: var arr = new ImmutableArray([1, 2, 3, 4]); var v2 = arr.push(5); arr.toArray

    1.4K50发布于 2017-12-29
  • 来自专栏IMWeb前端团队

    JS中的非可变性

    要想使数组满足非可变性,需要使用自定义的类似的数据结构: var arr = new ImmutableArray([1, 2, 3, 4]); var v2 = arr.push(5); arr.toArray

    1.2K20发布于 2019-12-03
  • 来自专栏林德熙的博客

    IIncrementalGenerator 增量 Source Generator 生成代码入门 获取引用程序集的所有类型

    接口的所有类型,即可采用本文介绍的方法 核心逻辑是在 Compilation 里面拿到 SourceModule 属性,通过 IModuleSymbol 类型的 SourceModule 属性进一步拿到 ImmutableArray

    1K20编辑于 2023-06-23
领券