这个问题得从C++的命名说起。
C++之父斯特劳斯特鲁普在C语言的基础上做了增强,创造出了一种增强型C语言。斯特劳斯特鲁普认为这种增强型C语言是C语言的自然演进,于是依照C语言的语法规则,将其最终命名为 C++。
「++」是C语言中的运算符,表示「(变量)+1」。可以说C++的命名,是对「C++语言是对C语言的增强和演进」这一特点的优雅诠释。
于是我们遵照音从作者的原则,应当认为「C++」是一条C语言的语句,应该按照读这条C语言语句的习惯读法去读它,所以 C++的英语读作 C Plus Plus,汉语读作 C加加 。
而C♯ ,同样依照音从作者的原则,应当英语读作 C Sharp, 汉语读作 C升。
这是因为严格来说不存在「C#」,只存在「C♯」。
♯ 并非井号#,而是五线谱里的升号,表示升半个音,英语读作 Sharp,汉语读作升。
C♯ 是音乐里的一个音名,在音乐中「C♯」表示C升半音,所以应当英语读作 C Sharp ,汉语读作 C升(或升C)。
显然,「C井」对应的英文是「C Well」,「C#」对应的英文是「C Hash」,这些都不符合作者的原意, C Sharp 才是符合 C♯ 推出者微软公司原意的读法之一 。
为什么说「之一」呢?这是因为,C♯ 语言是一种由C和C++派生出来的编程语言,微软在推出时将其命名为C♯ 包含了两种考虑:
从第二点可以得知, C♯ 实际上就是 「C++」++ 。
我们从严谨的语言学角度出发,遵照音从作者的原则, 应当认为 C♯ 除了像按照音节读法读作 C Sharp(C升) 以外,还可以读作 C Plus Plus Plus Plus ——汉语自然是读作 C加加加加了。