gpt4 book ai didi

c# - 扩展方法的有效权重(在设计时、运行时等)

转载 作者:太空宇宙 更新时间:2023-11-03 20:41:40 25 4
gpt4 key购买 nike

我想知道如果使用得非常广泛,扩展方法的有效权重是多少。

例如,如果我决定为许多常见的日常任务创建大量字符串/整数/日期时间扩展方法,从而获得一种流畅的界面,可能是整体重量会过度增加吗?如果是,是在设计时(例如 IntelliSense 数据库增长太多)还是在运行时或两者兼而有之?还是一个都没有?

为了避免到处出现大量 IntelliSense 建议的方法,我正在考虑将它们放在单独的命名空间中,例如“MyCompany.PathExtensions”或“MyCompany.DateTimeExtensions”,或者甚至将它们全部放在花哨的“MyCompany.FluentEverywhere”中或类似的...

我正在谈论的一个例子:

DateTime d;
d = 23.Minutes().FromNow();
d = "14".ToIntOr(0).IsBetween(10,20).IfFalseThrow(new Exception("foo"));

String finalPath;
// This will give you "c:\foo\bar\"
finalPath = "c:\\".AppendPath("foo").AppendPath("bar").EnsureTrailingBackslash();

String finalUrl;
// This will give you "ftp://mycompany.com/foo/bar"
finalPath = "mycompany".EnsureDomainExtensionOr("com").AppendPath("foo/bar").EnsureTrailingSlashNotThere().EnsureProtocolOr("ftp");

等等...哦,不要对 .IfFalseThrow(...) 之类的事情发狂,它们只是示例。

你怎么看?除了使用上,讨人喜欢,还是不看口味,可能还有整体重量的问题?

最佳答案

what is the effective weight of extension methods

与使用静态方法的效果完全一样。扩展方法已不复存在,只不过是用 C# 语法糖包装的静态方法,看起来像普通方法。

关于c# - 扩展方法的有效权重(在设计时、运行时等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2368452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com