gpt4 book ai didi

.net - 隐式运算符和 TypeConverters 是否等效?

转载 作者:行者123 更新时间:2023-12-04 02:06:38 24 4
gpt4 key购买 nike

在我看来,与 TypeConverter 相比,实现隐式运算符非常容易,因此我假设它们不等效,因为框架中普遍存在 TypeConverters(请参阅扩展 FrameworkElement 的任何内容)。

但为什么?创建 string->object 和 object->string 隐式运算符并利用序列化中的运算符(XML 和 XAML)不是更容易吗?

是雅格尼吗?单一责任?因为您不能在接口(interface)中指定运算符重载?

最佳答案

类型转换器比看起来要复杂得多。类型转换器可以访问有关转换上下文的一系列元数据 - 例如,所涉及的属性和对象。这用于为每个场景提供自定义选项(想想:链接的下拉菜单,即国家/县/城市/等)。您还可以基于每个属性指定类型转换器,我在很多地方使用它来提供对各种字符串属性的不同处理。运算符(operator)会一视同仁地对待所有字符串。

隐式运算符只知道正在转换的值,但具有更大的编译时支持。

或者另一种方式:TypeConverter是具有框架支持的框架功能;
运算符(主要)是具有语言支持的语言功能

要添加更多 - 类型转换器(尽管名称)不只是转换:

  • 它们提供子属性元数据(想想:在 PropertyGrid 上扩展属性)
  • 他们建议一种类型的可用选项(想想:PropertyGrid 上的下拉选项)

  • 请注意,它们不仅仅用于 PropertyGrid 的地方。 , 虽然;-p

    关于.net - 隐式运算符和 TypeConverters 是否等效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/379343/

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