gpt4 book ai didi

c# - 为什么提供 String(char[]) 的隐式运算符不好?

转载 作者:太空狗 更新时间:2023-10-30 01:06:47 25 4
gpt4 key购买 nike

我们可以:

var t=new String(new[] { '繁', '體', '中', '文' });

var encoding=Encoding.Unicode;
var bytes=encoding.GetBytes(new[] { 'E', 'n', 'g', 'l', 'i', 's', 'h' });
var t=encoding.GetString(bytes);

没有类似的东西:

public static implicit operator String(char[] charArray) {
return new String(charArray);
}

我们不能:

String t=new[] { 'р', 'у', 'с', 'с', 'к', 'и', 'й', '\x20', 'я', 'з', 'ы', 'к' };

我知道字符数组与字符串不一样;但有时我只想直接将字符数组分配给字符串;无需显式转换、转换或new X(new Y(new Z ...

而且我个人认为,未提供它的原因可能是因为:
C-Sharp 团队希望程序员,尤其是有 C++/C 经验的程序员记住,C-Sharp 与 C++ 或 C 相似。

问题是为什么不是?那很糟糕吗?

最佳答案

隐式转换是编译器的一项功能。 CLI 规范中没有任何内容允许它们,IL 中的所有转换都是显式的。即使是简单的也喜欢 int 到 long 和 float 到 double。因此,在您的案例中,由 C# 团队来使该语法正常工作。

C# 团队对此的思考方式已发表。每个可能的功能都从 -100 分开始,需要一些认真的动力才能达到 +100,以证明设计、实现、记录和维护功能所涉及的工作是合理的。我不能代表他们说话,但我严重怀疑这个能否超过 0。备选方案显而易见且简单,所以不值得。

关于c# - 为什么提供 String(char[]) 的隐式运算符不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14283408/

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