extension-methods 相关问题

扩展方法是某些语言的语言特性,如Swift,Visual Basic.NET和C#。扩展方法使您可以向现有类型“添加”方法,而无需创建新的派生类型,重新编译或以其他方式修改原始类型。

扩展方法是否遵循开闭原理

我的问题是关于扩展方法和打开关闭原理:为类创建扩展方法是否遵循打开关闭原理?如何测试使用扩展方法的类?

回答 1 投票 0


TypeScript 3.8中的扩展字符串

[我想要扩展String原型以添加.trimSlashes()方法以擦除字符串两端的斜线;我无法让它进行就地替换(而不是要求返回...

回答 1 投票 0

C#字符串在给定字符串之后,在字符串的第一次出现处附加一些字符串

我知道这似乎很复杂,但是我的意思是例如我有一个字符串。这是我要搜索的字符串(例如:text)。我想找到第一次出现的...

回答 1 投票 -1

如何进行扩展以C#中的枚举为目标[duplicate]

我正在尝试针对枚举类型进行扩展,但似乎它仅适用于枚举中的项目,而不适用于整个枚举本身。枚举:public枚举Demo {ValueOne,ValueTwo,...

回答 1 投票 1

找不到Dart扩展功能

我有一个关于flutter的项目,我非常想在其中使用扩展方法。我已经升级了pubspec.yaml文件以使用sdk:“> = 2.6.0 <3.0.0”。我创建了一个文件list_extensions.dart,内容为...

回答 1 投票 6

按自定义属性排序枚举

我发现了一种扩展方法,该命令可以使用自定义属性中存储的值对枚举进行排序。公共静态类EnumExtenstions {公共静态IEnumerable EnumGetOrderedValues

回答 1 投票 0

如果在Swift @IBaction UserDefault中不能用于检查登录名,则不能使用

我很困惑。这是因为,我的控制流程无法正常工作。我认为,这只是基本逻辑。但是,奇怪的是,我的控制流程不如我想要的那样。这是我的代码。就是...

回答 1 投票 0

Unity扩展方法GameObject

我正在尝试向我的游戏对象添加扩展方法,这是可行的,但是我的问题是GameObject共享相同的结果。我的目标是使每个GameObject都有不同的结果。 // ...

回答 2 投票 -1

编译器无法从包装的通用IEnumerable推断类型

我正在尝试为Dictionary >类型的字典编写通用扩展方法,该方法应返回IEnumerable 对于给定的...

回答 1 投票 1

将来的C#版本中是否有“扩展属性”的计划?

我以前已经考虑过这一点,在阅读此问题时又想到了这一点。 C#的未来版本中是否有“扩展属性”的计划?在我看来,它们可能很漂亮...

回答 6 投票 5

Dart:枚举上的扩展方法不起作用“未为该类定义该方法”

根据这个问题,我在dart中创建了一个带有扩展方法的枚举:enum TagVisibility {public,shared,private,} TagVisibility的扩展{字符串get德语{switch(this){...

回答 3 投票 0

我如何在c#中创建扩展名以返回可以在linq中转换为实体的新日期时间条目?

所以我在LinQ to实体查询中具有此属性,我需要在其中添加天数isWithinNinetyDays =(a.ParcelData == null?false:(a.ParcelData.Parcel_LetterTracking == null?false:...

回答 1 投票 1

我如何解决扩展库中的扩展方法歧义错误?

假设我有一个扩展方法。公共静态字符串DoSomething(this IInterfaceA @this)...和公共静态字符串DoSomething(this IInterfaceB @this)...但是如果我有一个类,则...

回答 1 投票 1

[rxjs管道点击/映射在订阅时未触发

我不知道为什么,但是当我将Observable与扩展方法和管道一起使用时,不会触发管道图或水龙头。从'rxjs'导入{Observable,Subscriber,Observer};从'...

回答 1 投票 0

如何使用pgxn?

最简单的命令,例如pgxn检查json_fdw,检查软件包不起作用:INFO:最佳版本:json_fdw 1.0.0 INFO:保存/tmp/tmpwblehzox/json_fdw-1.0.0.zip INFO:解包:/ tmp / ...

回答 1 投票 0

c#是否可以为字符串关键字[duplicate]创建扩展方法

我创建了一个扩展方法,用于像这样从System.Guid生成字符串。公共静态类Fnk {公共静态字符串Guid(bool teqel = true){var guid = System.Guid ....

回答 1 投票 0

如何将集合的Swift扩展限制为通用类型?

因为元组在Swift中不可哈希,所以我创建了一个通用结构体Couple,包含两个元素,这些元素组合在一起可以用作字典的键。 struct Couple ] >>>> 实现此目的的一种方法是定义您的Couple类型符合的协议,然后让您的扩展名应用于其键符合该协议的字典,例如: protocol CoupleProtocol { associatedtype U associatedtype V var u: U { get } var v: V { get } } struct Couple<U, V>: CoupleProtocol, Hashable where U: Hashable, V: Hashable { let u: U let v: V init(_ u: U, _ v: V) { self.u = u self.v = v } } extension Dictionary where Key: CoupleProtocol { func exampleConvertToArray() -> [(Key.U, Key.V, Any)] { return map { ($0.u, $0.v, $1) } } } let dictionary: [Couple<Int, Int>: Any] = [ Couple(1, 2): [1, 2], Couple(3, 4): "(3, 4)", Couple(5, 6): (5, 6) ] let array = dictionary.exampleConvertToArray() // array is of type: [(Int, Int, Any)] print(array) // prints: [(3, 4, "(3, 4)"), (1, 2, [1, 2]), (5, 6, (5, 6))] 这是可能的,但是不幸的是,通用约束必须在成员本身而不是整个extension上表达: struct Couple<U: Hashable, V: Hashable>: Hashable { let u: U let v: V init( _ u: U, _ v: V ) { self.u = u self.v = v } } extension Dictionary { func exampleConvertToArray<U, V>() -> [(U, V, Any)] where Key == Couple<U, V> { self.map { (key, value) in (key.u, key.v, value) } } } let input = [ Couple(1, 2): 3, Couple(4, 5): 6, Couple(7, 8): 9, ] let result = input.exampleConvertToArray() print(result)

回答 2 投票 1

Void数组扩展方法不执行任何操作

我编写了一个数组,然后使用扩展方法对其进行追加:private static void Main(string [] args){int [] testInts = {1,2,3,4,5}; testInts.Append(6); Console.WriteLine(“ ...

回答 3 投票 1

Void数组扩展什么都不做

我创建了一个数组,然后使用扩展方法对其进行了追加:private static void Main(string [] args){int [] testInts = {1,2,3,4,5}; testInts.Append(6); ...

回答 3 投票 1

© www.soinside.com 2019 - 2024. All rights reserved.